V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaoyanbot
V2EX  ›  PHP

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

  •  
  •   xiaoyanbot · 2017-05-22 23:47:19 +08:00 · 2866 次点击
    这是一个创建于 2736 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
    

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

    6 条回复    2017-05-23 23:21:21 +08:00
    xiaoyanbot
        1
    xiaoyanbot  
    OP
       2017-05-22 23:50:25 +08:00
    在第二个用法中,

    为什么 Array 的 输出会泡在前面去了呢?
    qiayue
        2
    qiayue  
       2017-05-22 23:53:28 +08:00
    http://php.net/manual/en/function.print-r.php
    第二个参数,默认是 false
    pubby
        3
    pubby  
       2017-05-23 00:54:33 +08:00
    看的什么手册,第二个参数明明默认 false

    http://cn.php.net/manual/en/function.print-r.php

    mixed print_r ( mixed $expression [, bool $return = false ] )


    第二个用法:
    print_r 输出内容,然后返回 true
    szopen
        4
    szopen  
       2017-05-23 09:33:13 +08:00
    die 这里可以看成是函数,参数是要打印的信息。所以要先执行 print_r,print_r 然后返回 1
    xiaoyanbot
        5
    xiaoyanbot  
    OP
       2017-05-23 11:06:25 +08:00
    明白啦!
    mingyun
        6
    mingyun  
       2017-05-23 23:21:21 +08:00
    @pubby
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   884 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:30 · PVG 05:30 · LAX 13:30 · JFK 16:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.