我使用PHP 7.1.23测试了以下代码:

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,true);

$sth = $pdo->prepare('select now() and this is a bad sql where a - b from c');

if ($sth === false) {

echo "error on prepare()\n";

print_r($pdo->errorInfo());

}

if ($sth->execute() === false) {

echo "error on execute()\n";

print_r($sth->errorInfo());

}

error on execute()

Array

(

[0] => 42000

[1] => 1064

[2] => You have an error in your sql Syntax; check the manual that corresponds to your MysqL server version for the right Syntax to use near 'a bad sql where a - b from c' at line 1

)

然后,我测试了相同的代码,除非禁用了仿真的prepare:

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);

error on prepare()

Array

(

[0] => 42000

[1] => 1064

[2] => You have an error in your sql Syntax; check the manual that corresponds to your MysqL server version for the right Syntax to use near 'a bad sql where a - b from c' at line 1

)

Fatal error: Uncaught Error: Call to a member function execute() on boolean

故事的道德启示:

>使用模拟的准备好的语句时,prepare()是空操作,并且错误会延迟到execute()为止.我建议禁用模拟的prepare,除非您使用的数据库不支持prepared语句(我不知道任何RDBMS产品的任何当前版本都不能执行真正的prepared语句).

>在prepare()上检查错误时,请使用$pdo-> errorInfo().

>在execute()上检查错误时,请使用$stmt-> errorInfo().

php pdo 00000,php-即使有错误,PDO错误代码也总是00000相关推荐

  1. php pdo 1064,php-即使有错误,PDO错误代码也总是00000

    我正在运行PHP 7.2.16 不确定启动时,即使有错误,PDO errorCode()或errorInfo()[0]现在总是显示00000 $pdo = new \PDO('mysql:host=l ...

  2. pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法

    当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...

  3. php pdo无法使用,php - php-无法使用PDO连接到数据库 - SO中文参考 - www.soinside.com

    我在连接到本地数据库时遇到问题.出于某种原因,当我尝试连接时,它显示以下错误: 连接失败:SQLSTATE [HY000] [1045]用户'root'@'localhost'拒绝访问(使用密码:否) ...

  4. pdo连接mysql 注入_使用PDO查询mysql避免SQL注入

    使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严紧,就有SQL注入风险.虽然可以用mysql_real_escape_string()函数过滤用户提 ...

  5. php pdo获取查询数据_php使用PDO获取结果集的方法

    本文实例讲述了php使用PDO获取结果集的方法.分享给大家供大家参考,具体如下: fetch()方法 fetch()方法用于获取结果集的下一行,语法如下: mixed PDOStatement::fe ...

  6. php pdo 打印sql语句,php – 使用PDO准备SQL语句

    我的代码看起来像这样: // Connect to SQLite DB DB('/path/to/sqlite.db'); DB('BEGIN TRANSACTION;'); // These loo ...

  7. yii2 pdo mysql 乱码_YII2.0使用PDO连接Oracle库查询结果中文显示乱码问题

    自己来解答,直接上代码. 创建链接测试用小程序如下: namespace app\models; use Yii; use yii\db\ActiveRecord; use \yii\db\Conne ...

  8. mysql错误号码1040_Mysql ERROR 1040 (00000): Too many connections

    程序添加数据库数据: 错误信息: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source r ...

  9. php pdo mysql query_PHP+MYSQL中使用PDO的query方法

    一 代码 class="php"> PDO连接MySQL数据库 ID PDO 数据库 时间 $dbms='mysql'; //数据库类型 ,对于开发者来说,使用不同的数据库, ...

最新文章

  1. 驾驭白夜场景、刷新多个SOTA,高效提升多目标追踪与分割
  2. 2020 年德国 IT 薪酬大揭秘!
  3. (0051)iOS开发之沙盒(sandbox)机制和文件操作(一)
  4. RedisTemplate
  5. 模拟六:STEMA 考试选择题模拟练习试卷(中级组)及答案 + 自我解题笔记
  6. Thymeleaf页面三元运算符
  7. 在服务器上处理gis文件,云服务器处理gis
  8. 试图将驱动程序添加到存储区_SQL 已死,但 SQL 将永存!
  9. websocket的压力测试和异步并发啥关系?
  10. mysql ERROR 1045 (28000): 错误解决办法
  11. LeetCode 108. Convert Sorted Array to Binary Search Tree
  12. mysql忘记密码怎么办?
  13. ubuntu右键添加打开终端的快捷菜单
  14. Java基础学习总结(36)——Java注释模板
  15. Codeforces Round #327 div2
  16. Python命令行解析工具argparse
  17. 终于有人对语音技术来了次彻头彻尾的批判!
  18. matlab+sfm+样例,基于SFM的三维重建MATLAB程序
  19. sql连接查询语句中on、where筛选的区别总结
  20. 原生JAVA解析json

热门文章

  1. PHP企业级开发环境配置全攻略-IDE+SVN++(转)
  2. CSS命名规范(建议版)(转)
  3. Singularity 介绍
  4. php array第一张图片_PHP array_udiff() 函数
  5. Tomcat设置URL兼容特殊符号
  6. 从底层重学 Java 之 Character 字符型 Gitchat连接
  7. mysql运营_为线上运营Mysql数据库设置从库
  8. 【OS学习笔记】三十 保护模式九:段页式内存管理机制概述
  9. 【C++深度剖析教程32】new/malloc区别 delete/free区别
  10. 【C++深度剖析教程27】多态的概念与意义