1这是向数据库插入数据的方法,代码如下:
<?php header("content-type:text/html;charset=utf-8"); try{ $pdo= new PDO("mysql:host=localhost;dbname=pdotest;port=3306;charset:utf-8",'root','***'); $statement= $pdo->prepare( "insert into test(title,content)values (:title,:content);" ); $date=[ 'title'=>"阿飞正传", 'content'=>"这是一部非常好看的电影,张国荣演的,我本人是非常的喜欢!!推荐给大家!" ]; /* $title="阿飞正传"; $content="这是一部非常好看的电影,张国荣演的,我本人是非常的喜欢!!推荐给大家!"; $statement->bindParam(1,$title); $statement->bindParam(2,$content); */ /* * $bingParam函数的第一个参数是对应insert into mine(title,content)values (?,?)中问号的位置 * 如果是1 的话,代表插入的的内容是第一个问号 * * */ $statement->execute($date); }catch (PDOException $e){ echo $e->getMessage(); } echo "<br>PDO是否关闭自动提交功能:". $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT); echo "<br>当前PDO的错误处理的模式:". $pdo->getAttribute(PDO::ATTR_ERRMODE); echo "<br>表字段字符的大小写转换: ". $pdo->getAttribute(PDO::ATTR_CASE); echo "<br>与连接状态相关特有信息: ". $pdo->getAttribute(PDO::ATTR_CONNECTION_STATUS); echo "<br>空字符串转换为SQL的null:". $pdo->getAttribute(PDO::ATTR_ORACLE_NULLS); echo "<br>应用程序提前获取数据大小:".$pdo->getAttribute(PDO::ATTR_PERSISTENT); echo "<br>与数据库特有的服务器信息:".$pdo->getAttribute(PDO::ATTR_SERVER_INFO); echo "<br>数据库服务器版本号信息:". $pdo->getAttribute(PDO::ATTR_SERVER_VERSION); echo "<br>数据库客户端版本号信息:". $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);
2.这是从数据库中查询数据的代码如下:
<?php header("content-type:text/html;charset=utf-8"); $pdo= new PDO("mysql:host=localhost;dbname=pdotest;port=3306;charset:utf-8",'root','******'); $statement=$pdo->query( "select * from test" ); foreach($statement as $v){ echo "<pre>"; print_r($v); echo "</pre>"; }
3.在写进数据库的时候出现了乱码,原因是数据库的字符集错误,后来用命令行创建解决了问题
4。解决pdo查询数据,且在页面中显示的时候,不出现乱码的解决方案
1. PHP页面设置:
$pdo->query('set names utf8;');
2. 检查数据表的编码格式,默认的不是utf8,再建立表时需要指定表的编码格式,如已经表已经存在了,那么可以通过语句修改表的编码方式,如下 :
alter table 表名 convert to character set utf8;
删除原有乱码,再次插入一条中文数据,
$rs = $pdo->query("select * from _t");
while ($row=$rs->fetch()){
print_r($row);
}
发现显示正常~
注意:所有的数据库语句中,在最后一定要执行 excute()执行函数;