Php 准备->;execute返回false

Php 准备->;execute返回false,php,mysql,session,pdo,Php,Mysql,Session,Pdo,我在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 s

我在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=$\u SESSION['email'],$\u SESSION['toHelp']的行,date只是一个稍早创建的日期(“Y-m-d H:i:s”)

问题是execute返回false,我有一个语法错误:

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

我不明白为什么

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


谢谢你的帮助

您在查询中忘记了

$updateLastchange = "UPDATE lastchange SET student = ?, date = ? WHERE tutor= ? ";
如果希望在数据库中存储变量,我认为这是可能的(尽管我还没有尝试):


执行此操作时,只需使用单个勾号(
),而不是双勾号(
)。您可以引用。

在两列之间加一个逗号?!是的,这就是问题所在,谢谢!谢谢!我觉得有点愚蠢…只有一个问题:是否可以更新名称为变量的表?例如“更新”?设置…“稍后执行?”Raphallal如果我的答案对您有帮助,您可以升级投票或将我的答案标记为正确答案。我确实更新了关于存储变量名的答案。我的意思是,我希望我的表名是一个变量…我无法将您的答案设置为“已接受”“因为我必须等待7分钟。@Raphallal-是的,您可以在表名来自变量的地方执行查询<代码>“更新”。$tablename。“设置column1=?其中id=?”
$variable = '$variableYouWantToStore';