此SQL语句适用于PHPMyAdmin,但不适用于我的网站:
$sql = mysqli_query($con,
"UPDATE details INNER JOIN date ON date.dateID = details.dateID
SET details.year = '$year', details.description = '$description', details.dateID = '$decade'
WHERE id='$recordID';")
or die('Query error. try again: '.mysqli_error());
虽然当我用以下代码替换它时,这个SQL语句有效。
$sql = mysqli_query($con, "UPDATE details SET year = '$year', description = '$description' WHERE id='$recordID'") or die('Query error. try again: '.mysqli_error());
这里发生了什么?为什么第一个代码没有更新我的记录?
网址正在接收新值,但它不会更新我的数据库。
答案 0 :(得分:1)
虽然您可以在一个UPDATE
query中更新多个表,但使用INNER JOIN
语法不正确。看起来您只需更新1张表details
,因此您不需要INNER JOIN date ON date.dateID = details.dateID
答案 1 :(得分:0)
如果以这种方式重写查询......
UPDATE details A, date B SET
A.year = '$year'
, A.description = '$description'
, A.dateID = '$decade'
WHERE A.dateID = B.dateID
AND A.id = '$recordID'
...您可以看到您实际上正在更新您要加入的值,这将无效。我不知道你想要完成什么,我不能告诉你更多。
答案 2 :(得分:0)
我相信这应该做到。
UPDATE details
SET details.year = '$year', details.description = '$description', details.dateID = '$decade'
FROM details
INNER JOIN date ON date.dateID = details.dateID
WHERE <tableName>.id='$recordID'