私はstackoverflowで見つけた多くのソリューションを試しましたが、1つのステートメント内でテーブルを更新しようとすると同じエラーが発生し続けます。PHPは1つのステートメントエラーで複数のテーブルを更新します
ERROR:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE docID=7' at line 2
コード:
<?php
if(isset($_POST['btn-revActivate']))
{
try
{
$database = new Database();
$db = $database->dbConnection();
$conn = $db;
$stmt=$conn->prepare("UPDATE tbl_revisions, tbl_documents SET revStatus='Active', docStatus='Draft'
WHERE revID=$rid AND docID=$docID ");
$stmt->bindparam("revStatus",$revStatus);
$stmt->bindparam(":id",$rid);
$stmt->bindparam("docStatus",$docStatus);
$stmt->bindparam(":docID",$docID);
$stmt->execute();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
return false;
}
}
?>
誰かが私はこの文と間違っているかわからないよう助けてください。おかげさまで
ため
あなたは(一つに)正しくプリペアドステートメントを使用していません。 –
@ Fred-ii-それは個別にうまく動作しますが、複数のテーブルは更新されません。 – bigjoed
そのクエリがそのエラーをどのように生成するのかわかりません。 'WHERE'節は2つの部分で異なります。また、あなたのコードはSQLインジェクションにオープンしているので、エラーのWHERE句はユーザーの入力から来ると思いますか? – David