我们在使用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

跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL的更多相关文章

  1. 跟着百度学PHP[14]-PDO之Mysql的事务处理2

    前面所将仅仅是在纯mysql下的讲解,这节就是要将其搬到PDO台面上来了. 将自动提交关闭. SetAttribute下有一个PDO::ATTR_AUTOCOMMIT 将其设置为0即可关闭,如:$pd ...

  2. 跟着百度学PHP[14]-初识PDO数据库抽象层

    目录: 00x1 php中的pdo是什么? 00x2 pdo创建一个PDO对象 00x1 php中的pdo是什么? 就是操作数据库的方法,pdo就是把操作数据库的函数封装成一个pdo类,其间做了安全验 ...

  3. 跟着百度学PHP[14]-PDO的预处理语句1

    预处理语句有以下两个特点: 1.效率高 2.安全性好 为什么说预处理语句效率高呢? 预处理语句就好比一个模板,比如下面的一串插入语句: insert into admin(id,username,pa ...

  4. 跟着百度学PHP[14]-COOKIE的应用/网站登陆案例完整案例

    先在数据库当中创建以下数据: mysql> create table user( -> id int not null auto_increment, ) not null default ...

  5. 跟着百度学PHP[14]-PDO-优化驱动

    使用方法设置预定义变量 PDO的方法/属性 PDO::beginTransaction — Initiates a transaction PDO::commit — Commits a transa ...

  6. 跟着百度学PHP[14]-PDO的预处理语句2

    在$sql = $pdo -> prepare("insert into users(gold,user,password) values(?,?,?)"):条语句我们不仅仅 ...

  7. 跟着百度学PHP[14]-PDO之Mysql的事务处理1

    事务处理:在实际案例当中干一件事的mysql语句(好比转账,小一同学转账100,小二同学收账,在mysql当中小一就要减去转账的钱,小二就要增加100快)倘若该语句执行过程中有任何一条的sql语句出错 ...

  8. PHP PDO的错误处理模式

    PDO默认的错误处理方式是返回一个数组格式的错误代码.如果想要判断SQL有没有出错时,就需要写一组代码来检测这个返回的数组.觉得这样有些麻烦.还好PDO还提供了另外两种处理方式,只要根据需要设置一下就 ...

  9. 跟着百度学PHP[17]-复习PDO的几个关键词

    主要就是复习一下几个关键词.发现太久没有写又忘了.惭愧. final self static const

随机推荐

  1. oe7升级到oe8中import的使用

     oe 7.0到oe 8.0 切换的时候发现我们系统的很多的module 无法load , import的时候出错, 后来发现oe 8.0自己的addons 也都做了修改在import自己的addon ...

  2. Parallax Occlusion Mapping in GLSL [转]

    http://www.sunandblackcat.com/tipFullView.php?topicid=28   This lesson shows how to implement differ ...

  3. decal in unity

    // Upgrade NOTE: commented out 'float4x4 _CameraToWorld', a built-in variable// Upgrade NOTE: replac ...

  4. 使用MapReduce实现温度排序

    温度排序代码,具体说明可以搜索其他博客 KeyPair.java package temperaturesort; import org.apache.hadoop.io.IntWritable; i ...

  5. global constructor

    HQ在要求我们修改code style后,又让我检查并去掉"global constructor". 第一次听说这玩意,就研究了一下.发现网上有人讨论的很精彩,就记下来. “glo ...

  6. XAMPP + Xdebug+Zend Studio

    建立php开发环境(XAMPP + Xdebug+Zend Studio) 大家知道,运行php可以在apache上运行,但是要在apache上配置php解释器模块,懒得麻烦.就用XAMPP吧,它已经 ...

  7. java运行shell命令,chmod 777 xxx,改变权限无效的解决的方法。

    在java程序中运行shell命令,改变文件的权限.能够在命令行中运行 chmod 777 <span style="font-family: Arial, Helvetica, sa ...

  8. html中锚点的应用【本页面跳转】

    设置锚点 <a name="top"></a> 同页跳转 <a href="#top">返回顶部</a> 不同页 ...

  9. Git库搭建好之后,当要提交一个新的文件,需要做的是3个步骤

    Git库搭建好之后,当要提交一个新的文件,需要做的是3个步骤 1.git add new.txt 2.git commit -m "add a new file" 3.git pu ...

  10. #pragma pack(push,1)与#pragma pack(1)的区别(转)

    这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式. #pragma pack (n)             作用:C编译器将按照n个字节对 ...