php - 在 PHP 中编写条件 mySQL 查询的语法问题

标签 php mysql

我有以下以 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']);

如果该行不存在,则插入该行,否则更新该行。

https://dev.mysql.com/doc/refman/5.7/en/replace.html

关于php - 在 PHP 中编写条件 mySQL 查询的语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57533567/

相关文章:

php - 使用 AJAX 和 Codeigniter 从数据库中删除用户

php - 使用 PHP 检查 MySQL 查询中的特定错误

php - MySQL UNIX_TIMESTAMP 行为怪异

mysql - SQL表——如何编写查询来确定一支球队是上半年得分多还是下半年得分多

php - 来自 mysql 表的 CSV 逗号分隔文件

javascript - 如何解决双引号内双引号语法错误

php - 使用 php excel 将 Logo 添加到 excel 工作表

mysql - 在mysql中将数据从一个表插入另一个表

php - MySQL介于和或之间?

php - 如何将 & 转换为出现在自动完成下拉列表中的 &