php – mysqli_stmt_bind_result的奇怪问题

好吧所以这样就把我的垃圾弄错了,我似乎无法在
PHP文档中找到任何内容,也无法在Google结果中找到任何内容,所以也许有人可以在这里提供帮助.

我正在使用预准备语句,绑定结果,然后使用这些绑定结果填充下拉列表.例:

<option value="">Select artist</option>
<?php   
    $artistQuery = "SELECT ArtistID,ArtistName FROM Artist_v";
    if($artist = mysqli_prepare($link,$artistQuery)){
        mysqli_stmt_execute($artist);
        $artistResult = mysqli_stmt_bind_result($artist,$artistID,$artistName);

        while(mysqli_stmt_fetch($artist)){
?>
<option value="<?php echo $artistID; ?>"><?php echo $artistName; ?></option>
<?php
        }
        mysqli_stmt_close($artist);
    }
?>
<option value="Other">Add new...</option>

有些东西你可能会注意到有点奇怪.即:

$artistResult = mysqli_stmt_bind_result($artist,$artistID,$artistName);

PHP documentation for mysqli_stmt_bind_result中没有任何理由将此结果捕获到变量中,这样的事情应该没问题:

mysqli_stmt_bind_result($artist,$artistID,$artistName);

不仅如此,我从未使用过用于捕获结果的变量.我捕获的唯一原因是因为没有执行此捕获处理总是失败.就像…页面的其余部分甚至拒绝生产.我查了一下mysqli_error(),error_reporting(E_ALL); ini_set(‘display_errors’,’1′);,你能想到的所有错误消息……没什么.

更糟糕的是,我的开发盒没有这个问题,也没有我以前的托管服务提供商……我第一次遇到这个问题时,我改为新的提供商.这告诉我(a)我的原始PHP很好,(b)它可能是一个设置/选项问题.我根本不知道在哪里.

有没有人经历过这个?

顺便说一下,不要问我是如何到达变量捕获的东西让它工作……这是一个多小时的试错会议,我无法告诉你我的想法是什么它.

最佳答案 好吧,这真的不是一个血腥的答案,但我的问题已经解决了.

事实证明5.4版本的实现很简单,因为我改用了我的网站运行版本5.3并且突然之间它运行了.

最重要的是,我感谢你们提供的所有帮助,但我必须强迫自己暂时使用旧版本的PHP.那四天我永远不会回来.

编辑

我找到了一个真正的解决方案:切换托管服从那以后没有经历过这个问题.

点赞