gpt4 book ai didi

PHP MYSQL 更新查询与 @variable 不起作用

转载 作者:行者123 更新时间:2023-11-29 09:44:03 25 4
gpt4 key购买 nike

在 php 中,我尝试更新表列调用 order ,增量值增量为 10,其中 project = 为 1;

我的表名称是:任务我的表包含列:id,项目,名称,订单

在 phpmyadmin 中我成功完成了这个查询。

SET @order := 0; UPDATE `task` SET `order` = @order := @order + 10 WHERE project = 1 ;

现在在 PHP 中我正在这样做:

$query = 'SET @order := 0; UPDATE `task` SET `order` = @order := @order + 10 WHERE project = "'.$project.'";';
$result = mysql_query($query) OR die(mysql_error());

如果我回显我的 $query,我就会得到这个。

SET @order := 0; UPDATE `task` SET `order` = @order := @order + 10 WHERE project = "1"

我收到此错误:

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 'UPDATE `task` SET `order` = @order := @order + 10 WHERE project = "1" at line 1

知道我的问题是什么;

我知道我应该使用 PDO 或任何更现代的 SQL 东西,但这是旧项目的补丁;)

最佳答案

您不能在一次调用 mysql_query() 中放置多个查询。将其分为两个调用:

$query = 'SET @order := 0'; 
mysql_query($query) OR die(mysql_error());
$query = 'UPDATE `task` SET `order` = @order := @order + 10 WHERE project = "'.$project.'";';
mysql_query($query) OR die(mysql_error());

诸如@order之类的变量在调用之间保留,因为它们与连接相关联,而不是与调用相关联。

关于PHP MYSQL 更新查询与 @variable 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56030011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com