php - mysqli 查询出现语法错误,但 phpmyadmin 可以工作

标签 php mysql mysqli phpmyadmin

虽然以下查询适用于 phpmyadmin,但当我使用 mysqli->query() 时,会发生语法错误

START TRANSACTION;
SELECT Value INTO @Increment FROM SystemConfiguration WHERE `Key` = 'POIncrement' FOR UPDATE;
UPDATE SystemConfiguration SET Value = Value + @Increment WHERE `Key` = 'POID';
COMMIT;

语法错误消息:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT Value INTO @Increment FROM SystemConfiguration WHERE `Key` = 'POIncrement' at line 2

是 mysqli 准备查询并添加一些内容吗?

最佳答案

$sql = <<<SQL
START TRANSACTION;
SELECT Value 
    INTO @Increment 
    FROM SystemConfiguration 
        WHERE `Key` = 'POIncrement' FOR UPDATE;
UPDATE SystemConfiguration 
    SET Value = Value + @Increment 
    WHERE `Key` = 'POID';
COMMIT;
SQL;

$res = mysqli_multi_query($connection, $sql);

关于php - mysqli 查询出现语法错误,但 phpmyadmin 可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27407525/

相关文章:

php - 表单在窗口关闭时提交

PHP比较困惑

php - 样式表未使用 php readfile() 加载

sql - 我可以强制mysql先执行子查询吗?

php - 如何根据用户选择数据库?

php - mysqli_affected_rows 返回-1 但更新查询成功

php - Laravel 多时区

mysql - 帮我优化这个查询

php - 遍历 POST 数组并更新数据库

php - 使用已使用 filter_input() 过滤的 htmlspecialchars() 从数据库输出数据