我在sql语句($ result)中的代码中遇到了问题。它说WHERE 'idCartao'='$id'
上有一个语法错误。
<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_database = 'hsa';
$id = $_POST['idTAG'];
try {
$db = new PDO('mysql:host='.$db_host.';dbname='.$db_database, $db_user, $db_pass);
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$result = $db->prepare("INSERT INTO 'cartao' (horaEntrada,horaSaida) VALUES (CURTIME(),CURTIME()) WHERE 'idCartao'='$id'");
$result->execute();
$db = null;
?>
答案 0 :(得分:4)
1)在SQL中,''
中引用的任何内容都是字符串。您不能将它用作列/表/数据库名称。 MySQL专门使用``
为列/表/数据库提供引用,通常使用它作为在使用数据名称等关键字时转义MySQL保留关键字。
2)INSERT ... VALUES
不适用于WHERE
您可能打算使用UPDATE
?不确定,问题不清楚。
3)您还应该知道如何正确使用准备好的陈述。
总的来说,您可能需要执行以下操作:
$result = $db->prepare("UPDATE `cartao` SET `horaEntrada`=CURTIME(),`horaSaida`=CURTIME() WHERE `idCartao`=:id");
$result->execute([ ":id" => $id ]);