【发布时间】:2018-07-09 06:51:06
【问题描述】:
我的问题应该很容易解决,但我找不到我的数据库接口向我抛出的语法错误。以下代码用于更新timetrackingtool中现有用户的密码。
我检查了所有的表和字段名,它们都是正确的。
SQL查询代码:
$query = ('UPDATE tblMitarbeiterUUID SET tblMitarbeiterUUID.dtPassword="' . $pwd . '" '.
'INNER JOIN arbeiter '.
'ON tblMitarbeiterUUID.idMitarbeiterUUID=arbeiter.fidMitarbeiterUUID ' .
'WHERE arbeiter.id=' . $userID)
这个查询的回声:
UPDATE tblMitarbeiterUUID SET tblMitarbeiterUUID.dtPassword="7687225fde7aad38f4c005ad4b5cdd5a" INNER JOIN arbeiter ON tblMitarbeiterUUID.idMitarbeiterUUID=arbeiter.fidMitarbeiterUUID WHERE arbeiter.id=1
尝试直接在数据库上运行查询时出现错误:
SQL 错误 (1064):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“FROM tblMitarbeiterUUID INNER JOIN arbeiter ON tblMitarbeiterUUID.ifMitarbeiterUUID=arbeiter.fidMitar...”附近使用正确的语法
在我的研究中,我看到一些人在 UPDATE 声明中使用 FROM 和 INNER JOIN。我用FROM 尝试过,但我得到了与上面相同的错误。
提前感谢您的帮助。最好的问候,卢卡。
正确的语法(在我得到正确答案后编辑):
'UPDATE tblMitarbeiterUUID x '.
'JOIN arbeiter y ON x.idMitarbeiterUUID = y.fidMitarbeiterUUID ' .
'SET x.dtPassword="' . $pwd . '" ' .
'WHERE y.id=' . $userID
【问题讨论】:
-
还要注意你对 sql 注入持开放态度
标签: mysql sql syntax syntax-error inner-join