PDO绑定参数在登台和托管服务器上静默失败

时间:2011-01-29 10:07:09

标签: php mysql pdo

我正在使用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);

两者都在我的开发机器上工作,但它在我的测试服务器中停止。

我只能看到'陈述准备',没有任何反应。

还在托管环境中尝试了该页面。同样的事情发生了。

2 个答案:

答案 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();