我正在使用WindowsXP机器来处理我正在开发的PHP页面。我正在使用PDO连接MySQL后端。在我的开发环境中它工作正常,但它在我的CentOS 5.5测试服务器中默默地停止处理。经过一些调试后,我发现它完全停在'$ stmt-> bindParams'部分。
我的发言如下:
$stmt = $dbh->prepare('SELECT * FROM MEMBERS WHERE ID=:what');
echo 'statement prepared'; //debug
$stmt->bindParam('what', $enteredid);
echo 'parameters bound'; //debug
也尝试了
$stmt->bindParam('what', $enteredid, PDO::PARAM_STR, 255);
两者都在我的开发机器上工作,但它在我的测试服务器中停止。
我只能看到'陈述准备',没有任何反应。
还在托管环境中尝试了该页面。同样的事情发生了。
答案 0 :(得分:1)
当你调用bindParam()时,你不需要传递':what'作为要绑定的占位符而不是'what'?不知道为什么这可以在Windows而不是Linux上工作...
答案 1 :(得分:1)
陈旧,但有人可能会觉得这很有用
正确的代码是:
$stmt = $dbh->prepare('SELECT * FROM MEMBERS WHERE ID=:what');
echo 'statement prepared'; //debug
$stmt->bindValue(':what', $enteredid);
echo 'parameters bound'; //debug
$stmt->execute();