mysql print r_PHP 中 PDO 打印出错信息,和 print_r 的位置提前的奇怪表现问题

本文探讨了在PDO执行SQL时使用print_r($db->errorInfo(), TRUE)与不加TRUE参数的区别。当SQL语句出错时,推荐的用法能正确显示错误信息数组,而省略TRUE参数会导致输出格式异常,错误信息前会先显示'array'及数字1。问题在于print_r的默认行为与PHP手册推荐用法之间的差异。
摘要由CSDN通过智能技术生成

print_r($变量,TRUE)

在手册上看到,print_r 有个后面为 TURE 的参数,在 PDO 执行的时候,PHP 手册上推荐的用法是

$db->exec($sql) or die ( '程序运行出错,出错信息:' . print_r( $db->errorInfo(),TRUE ) );

手册上说,print_r 默认第二个参数就是 TRUE,那么说 加不加 TRUE,表现应该是一致的,但是发生了不一致的表现,很奇怪的 位置 表现

推荐的加 TRUE 的正常输出: (假设 SQL 语句出错,模拟一下)

$dsn = "mysql:host=127.0.0.1;dbname=数据库名称";

$db = new PDO($dsn, '数据库用户名', '密码');

$sql = '********';

$db->exec($sql) or die ( '程序运行出错,出错信息:' . print_r( $db->errorInfo(),TRUE ) );

输出是 正常的预期:

程序运行出错,出错信息: Array ( [0] => 23000 [1] => 19 [2] => UNIQUE constraint failed: user.name )

但是如果没有 TURE 参数, 即程序是:

$dsn = "mysql:host=127.0.0.1;dbname=数据库名称";

$db = new PDO($dsn, '数据库用户名', '密码');

$sql = '********';

$db->exec($sql) or die ( '程序运行出错,出错信息:' . print_r( $db->errorInfo() ) );

程序的输出很奇怪, 先出现了 array 打印,再输出了 数字 1

Array ( [0] => 23000 [1] => 19 [2] => UNIQUE constraint failed: user.name ) 程序运行出错,出错信息:1

有哪位大神知道这是咋回事?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值