在 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']

                ]);


翻过高山走不出你
浏览 138回答 2
2回答

肥皂起泡泡

认为您只是缺少“发件人”。SELECT * `Table1` WHERE应该SELECT * FROM `Table1` WHERE

慕尼黑5688855

替代查询:$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
打开App,查看更多内容
随时随地看视频慕课网APP