【发布时间】:2013-04-08 20:58:06
【问题描述】:
我正在尝试在 MySQL 中使用 IF EXISTS,但我不断收到语法错误,我已经研究过正确的语法,但一切都不起作用...
我需要的是: 如果查询存在则 UPDATE else INSERT new...
$queryString = "IF EXISTS (SELECT * FROM $ONCALL_TABLE WHERE uid='$contextUser' AND submitid='$submitid' AND submitstatus=3) THEN UPDATE $ONCALL_TABLE SET uid='$contextUser', start_time='$onStr', end_time='$offStr', amount='$amount' ELSE INSERT INTO $ONCALL_TABLE (uid, start_time, end_time, amount) VALUES ('$contextUser','$onStr', '$offStr', '$amount') END IF";
错误信息: 无法执行查询:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'IF EXISTS (SELECT * FROM timesheet_oncall WHERE uid='admin' AND submitid='136545' 附近使用正确的语法
【问题讨论】:
-
您已经将escaped
$contextUser和其他变量注入到您的SQL 中,对吧?在不使用占位符的情况下构建查询是灾难的根源。
标签: mysql