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
有哪位大神知道这是咋回事?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.