好吧,这让我大吃一惊,我似乎在 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);
在mysqli_stmt_bind_result 的 PHP 文档中,没有任何理由将此结果捕获到变量中,这样的事情应该没问题:
mysqli_stmt_bind_result($artist,$artistID,$artistName);
不仅如此,我用来捕获结果的变量从未使用过。我捕获的唯一原因是因为不执行此捕获处理总是失败。就像......页面的其余部分甚至拒绝制作。我已经检查了mysqli_error()
,,error_reporting(E_ALL); ini_set('display_errors', '1');
所有你能想到的错误信息......什么都没有。
更糟糕的是,我的开发盒没有这个问题,我以前的托管服务提供商也没有……我换新的提供商时第一次遇到这个问题。这告诉我(a)我原来的 PHP 很好,并且(b)它可能是一个设置/选项问题。我只是不知道在哪里。
有没有人经历过这个?
顺便说一句,不要问我是如何得到变量捕获以使其工作的……这是一个多小时的反复试验,我无法告诉你我的想法是什么它。