Php mysqli\u stmt\u bind\u结果出现奇怪问题
好吧,这让我很恼火,我在PHP文档中找不到任何东西,在Google resultosphere中也找不到任何地方,所以也许有人可以在这里提供帮助 我使用准备好的语句,绑定结果,然后使用这些绑定结果填充下拉列表。例如: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
<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);