在函数中运行更新查询

时间:2015-08-19 作者:Zoe Epix

我需要在函数中运行以下命令,如果满足某些条件,它会更新我的数据库。我无法让它工作,我只能假设它是因为一开始的“SET@newnum”。

我已经回显了我的查询,并通过PHPMyAdmin对其进行了测试,结果很好。

有人知道如何正确执行此操作吗?

global $wpdb;
$sql = "SET @newnum = 0;
    Update wp_esp_ticket tix
    INNER JOIN (
    SELECT et.TKT_ID FROM wp_esp_ticket et 
    INNER JOIN wp_esp_datetime_ticket edtt on edtt.TKT_ID = et.TKT_ID
    INNER JOIN wp_esp_datetime edt on edtt.DTT_ID = edt.DTT_ID
    WHERE edt.EVT_ID = ".$courseBookID."
    ORDER BY edt.DTT_EVT_start ASC
    ) b ON tix.TKT_ID = b.TKT_ID
    SET tix.TKT_order = @newnum:=@newnum + 1";

$wpdb->query($sql);

1 个回复
SO网友:gpd

正如David所指出的,wpdb::query() 不允许多次呼叫。是的,这是因为"SET @newnum = 0;" 在实际查询之前。这种查询根本不可能,因为后端会阻止这种查询,以防止SQL注入攻击。

除此之外,我在博客中描述的技术提供了一个不同的用例,它似乎与您想要在这里实现的目标无关。

也许你应该更确切地知道你想要你的“SET”子句做什么?

[...] SET tix.TKT_order = @newnum:=@newnum + 1";
查询的预期结果是什么?

结束

相关推荐

升级MySQL for WordPress有哪些相关问题?

对于托管多个Wordpress站点的服务器,将MySQL从5.1升级到5.5有哪些相关问题?升级后数据库是否会出现问题?我在Ubuntu服务器上安装了Plesk 12,我可以更新到MySQL的最新版本(我相信只有5.5),但我不知道这是否会导致问题?从数据库兼容性(从5.1升级到5.5)的角度来看,升级MySQL是很简单,还是很可能会出现问题?