准备>执行返回 false


prepare->execute returns false

我在php/mySql中遇到了一个小问题。

这是代码:

$updateLastchange = "UPDATE lastchange SET student = ? date = ? WHERE tutor= ? ";
$req = $db->prepare($updateLastchange);
if($req->execute(array($_SESSION['toHelp'], $date, $_SESSION['email'])))
{
    //some code that should be executed
}

您还必须知道"lastchange"实际上包含tutor = $_SESSION['email'],$_SESSION['toHelp']定义的行,日期只是一个更早创建的日期("Y-m-d H:i:s")。

问题是执行返回 false,并且我有一个语法错误:

致命错误:未捕获的异常"PDOException",并显示消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您有一个 您的 SQL 语法错误;检查与您的手册相对应的手册 MySQL 服务器版本,用于在"日期 = "附近使用的正确语法 = '2015-06-10 11:09:53' 其中导师='导师''

我不明白为什么...

我使用WAMP(我不知道你是否需要知道)。

感谢您的帮助!

您在查询中忘记了,

$updateLastchange = "UPDATE lastchange SET student = ?, date = ? WHERE tutor= ? ";

如果你想在你的数据库中存储一个变量,我认为这是可能的(虽然我还没有尝试过):

$variable = '$variableYouWantToStore';

执行此操作时,只需使用单个刻度('),而不是双勾号(")。你可以参考这里。