Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli\u stmt\u bind\u结果出现奇怪问题_Php_Mysql_Mysqli_Prepared Statement - Fatal编程技术网

Php mysqli\u stmt\u bind\u结果出现奇怪问题

Php mysqli\u stmt\u bind\u结果出现奇怪问题,php,mysql,mysqli,prepared-statement,Php,Mysql,Mysqli,Prepared Statement,好吧,这让我很恼火,我在PHP文档中找不到任何东西,在Google resultosphere中也找不到任何地方,所以也许有人可以在这里提供帮助 我使用准备好的语句,绑定结果,然后使用这些绑定结果填充下拉列表。例如: <option value="">Select artist</option> <?php $artistQuery = "SELECT ArtistID,ArtistName FROM Artist_v"; if($artist

好吧,这让我很恼火,我在PHP文档中找不到任何东西,在Google resultosphere中也找不到任何地方,所以也许有人可以在这里提供帮助

我使用准备好的语句,绑定结果,然后使用这些绑定结果填充下拉列表。例如:

<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>
在这个例子中,没有任何理由将这个结果捕获到一个变量中,类似这样的东西应该很好:

mysqli_stmt_bind_result($artist,$artistID,$artistName);
不仅如此,我用来捕获结果的变量从未被使用过。我捕获的唯一原因是,如果不执行此捕获,处理总是失败。喜欢页面的其余部分甚至拒绝被制作。我已经检查了
mysqli\u error()
错误报告(E\u ALL);ini_集('display_errors','1'),您能想到的所有错误消息。。。没什么

更糟糕的是,我的开发箱没有这个问题,我以前的主机提供商也没有。。。我第一次遇到这个问题是在我更换新提供商时。这告诉我(a)我原来的PHP很好,(b)可能是设置/选项的问题。我只是不知道在哪里

有人经历过吗


顺便说一句,不要问我是如何得到变量捕获的东西来让它工作的。。。这是一次长达数小时的反复试验,我无法告诉你我的想法。

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

事实证明,5.4版的实现是很简单的,因为我切换到让我的网站运行5.3版,突然它工作了

总之,我感谢你们提供的所有帮助,但我必须强迫自己至少暂时使用一个旧版本的PHP。那四天我再也回不来了

编辑


我找到了一个真正的解决方案:切换主机提供商。从那以后就没有遇到过这个问题。

你能解释一下“没有任何理由将这个结果捕获到一个变量中……正如你在我生成的PHP中看到的,它从来没有使用过它。”当然,我会修改我的答案。非常奇怪。因此,只需省略
$artistResult=
=crash and burn?如果在测试文件中隔离它(没有包含,没有其他代码),只需一个连接、准备、执行和绑定:这是否仍然表现出这种行为?
$artist
是执行的mysqli语句,下面2个是SELECT返回的变量名。这是基于PHP文档的过程的标准。您是否在不将其分配给变量的情况下使其工作?我遇到了同样的问题,但我尝试将其分配给变量,但无法使其工作。例如,
mysqli\u stmt\u bind\u result($stmt,$photo\u id)
并且它不会将值分配给
$photo\u id
。我已经在mysql中进行了查询,并且成功了。
mysqli_stmt_bind_result($artist,$artistID,$artistName);