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

关于mysqli_stmt_error在本应返回错误的情况下不返回任何结果问题

  •  
  •   xi4oh4o · 2011-11-25 23:32:24 +08:00 · 4289 次点击
    这是一个创建于 4750 天前的主题,其中的信息可能已经有所发展或是发生改变。
    好奇去测试了下,就原本照搬官方manual里的范例代码


    在我trial and error之后都是一样的结果,mysqli_stmt_error在本应返回错误的情况下,不会返回任何结果。

    为什么欲望很强烈!,非常想搞清楚是那边的问题。

    环境版本:
    Apache 2.2.21
    MySQL 5.5.16
    PHP 5.3.8
    12 条回复    1970-01-01 08:00:00 +08:00
    yesmeck
        1
    yesmeck  
       2011-11-25 23:50:30 +08:00
    创建一张表是这样写的吗?
    CREATE TABLE myCountry LIKE Country
    yesmeck
        2
    yesmeck  
       2011-11-25 23:54:33 +08:00
    唔,你有Country那张表吗?
    xi4oh4o
        3
    xi4oh4o  
    OP
       2011-11-27 17:25:52 +08:00
    @yesmeck 即使没有,但$stmt->error也会针对这个输出错误吧,但我什么也没得到
    yesmeck
        4
    yesmeck  
       2011-11-27 18:57:38 +08:00
    没有的话
    $mysqli->prepare($query) === true
    yesmeck
        5
    yesmeck  
       2011-11-27 18:57:55 +08:00
    额,错了
    $mysqli->prepare($query) === false
    kojp
        6
    kojp  
       2011-11-27 19:17:45 +08:00
    @xi4oh4o

    会不会跟你的配置文件有关系呢?比如说,php.ini
    xi4oh4o
        7
    xi4oh4o  
    OP
       2011-11-27 21:28:50 +08:00
    @yesmeck 强制让prepare通过if判断到达$stmt->error吗、但我不使用if语句也没有得到任何结果

    $stmt = $mysqli->prepare($bad_query)
    $stmt = execute();
    echo "test";
    echo $stmt->error;
    也只输出了test,但没有收到任何错误信息

    @kojp php.ini的notice都开启了,不过好像无关。

    两位有实际试过吗? 我想知道是不是我个列。
    yesmeck
        8
    yesmeck  
       2011-11-27 22:21:45 +08:00
    我这里是ok的。。。
    xi4oh4o
        9
    xi4oh4o  
    OP
       2011-11-28 00:32:52 +08:00
    @yesmeck $stmt->error;可以获取到错误信息? 也就是说不是代码的问题了。
    真的是php.ini或者版本问题吗:( 方便贴下php.ini吗
    yesmeck
        10
    yesmeck  
       2011-11-28 00:43:27 +08:00
    要说php.ini的话跟错误有关的就这两个了
    error_reporting = E_ALL | E_STRICT
    display_errors = On
    xi4oh4o
        11
    xi4oh4o  
    OP
       2011-11-28 10:30:51 +08:00
    @yesmeck 非常感谢你的OK确认 :)

    跑到execute();就直接throw:Call to a member function execute() on a non-object错误了,似乎是卡在prepare的问题了

    过了prepare之后再用不是query方法删除字段造成错误才会有提示,不然到prepare就停了。好纠结

    mysqli_stmt Object ( [affected_rows] => -1 [insert_id] => 0 [num_rows] => 0 [param_count] => 0 [field_count] => 1 [errno] => 1054 [error] => Unknown column 'username' in 'field list' [sqlstate] => 42S22 [id] => 1 )
    xi4oh4o
        12
    xi4oh4o  
    OP
       2011-11-28 10:32:25 +08:00
    @yesmeck 修正:过了prepare之后再用query方法删除字段造成错误才会有提示,不然用prepare会直接停。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1328 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:05 · PVG 02:05 · LAX 10:05 · JFK 13:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.