PDO对数据库的操作

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()执行函数;

原文地址:https://www.cnblogs.com/zhengweizhao/p/6838124.html