我有以下以 PHP PDO 脚本格式编写的 mySQL 查询。我确保验证查询中引用的所有列都存在。
所以问题似乎与查询本身的语法有关。在 POSTMAN 中执行查询时,我发现问题似乎出在 if 语句所在的位置。
以下是查询:
$stmt = $conn->prepare('IF EXISTS (SELECT * `Table1` WHERE `code`= :code )
UPDATE `Table1`
SET `code_stat` = 2
WHERE code = :code
ELSE
INSERT INTO `Table1` (`code`,`code_stat`)
VALUES (:code, 2 ) ' );
$stmt->execute([
'code' => $_POST['code']
]);
最佳答案
替代查询:
$stmt = $conn->prepare("REPLACE INTO `Table` (`code`,`code_stat`) VALUES (:code,2)");
$stmt->execute(['code' => $_POST['code']);
如果该行不存在,则插入该行,否则更新该行。
关于php - 在 PHP 中编写条件 mySQL 查询的语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57533567/