可我浪费着我寒冷的年华

跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL

我们在使用PDO去执行sql语句的时候并不会报错.如下案例所示:

<?php 
try {
  //$pdo = new pdo("mysql:host=主机;port=端口;dbname=数据库","数据库名","密码");
$pdo = new pdo("mysql:host=localhost;port=3306;dbname=test","root",""); } catch (PDOException $e) { echo $e->getmessage(); } echo $pdo->exec("insert into aaaa values(aaa)");//此处sql语句故意写错。 ?>

但返回的结果是一篇空白,也就是说sql语句执行错误了我们并不知道,这样是不行的,极大的影响了工作。那么这时候我们就需要自己写一个错误让他来报错。

我们需要借助$pdo->errorcode以及$pdo->errorinfo

<?php 
try{
    $pdo = new pdo("mysql:host=localhost;port=3306;dbname=test","root","");
}catch(PDOException $e){
    echo $e->getmessage();
}
    echo "PDO对象创建成功.<br />";
    $sql = $pdo -> exec("insert inssssto users(gold,user,password) values(7,'hello','world')");
    if(!$sql){
        echo $pdo->errorcode();
        echo "<br />";
        print_r($pdo->errorinfo());
        exit;
    }
    echo "sql语句执行成功。";
 ?>

显示效果如下图所示:

sql语句刻意写错了的。当然了我们也可以使用try catch

<?php 
try{
    $pdo = new pdo("mysql:host=localhost;port=3306;dbname=test","root","");
}catch(PDOException $e){
    echo $e->getmessage();
}
    echo "PDO对象创建成功.<br />";
    $sql = $pdo -> exec("insert inssssto users(gold,user,password) values(7,'hello','world')");
    if(!$sql){
        echo $pdo->errorcode();
        echo "<br />";
        print_r($pdo->errorinfo());
        exit;
    }
    echo "sql语句执行成功。";
    
 ?>
demo

 


PDO执行sql语句:

 其实上面的案例当中已经涉及,就是exec,但还有一个为:query。

二者的差异:

    Exec用来处理非结果集的  比如insert update create等 且该还返回影响行数.

    Query 用来处理结果集的  比如select desc show等.

 但其实这两种都不是常用的语句。因为还有比query和exec更好的。详情可看:http://www.cnblogs.com/xishaonian/p/6428744.html

posted @ 2017-02-21 16:55  珍惜少年时  阅读(810)  评论(0编辑  收藏  举报
可我浪费着我寒冷的年华