-1
我已經嘗試了很多我在stackoverflow上找到的解決方案,但在嘗試在一個語句內更新我的表時仍然收到相同的錯誤。PHP在一個語句中更新多個表錯誤
錯誤:
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條款是不同的。還要注意,你的代碼是開放給SQL注入的,所以我猜錯誤中的WHERE子句可能來自用戶輸入。 – David