好吧所以这样就把我的垃圾弄错了,我似乎无法在
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.那四天我永远不会回来.
编辑
我找到了一个真正的解决方案:切换托管服从那以后没有经历过这个问题.