mysqli_multi_query可以做UPDATE语句?(Can mysqli_multi_qu

2019-10-30 10:35发布

我试图做多的更新mysqli_multi_query()但它不工作。

$arr_updates[] = "UPDATE MYTABLE SET COLUMN = 'VALUE' WHERE ID = 1";
$arr_updates[] = "UPDATE MYTABLE SET COLUMN = 'VALUE' WHERE ID = 2";

$b = mysqli_multi_query($CONN,join("; ",$arr_updates));

$b为FALSE,即使SQL语句的语法是正确的。

mysqli_multi_query()应该与MySQL UPDATE语句工作? 或者是有什么办法可以优化我的更新语句? (我不能使用switch语句。)

这些都是产生疑问:

UPDATE cj_term_taxonomy SET parent = 0 WHERE parent = 120;
UPDATE cj_term_taxonomy SET parent = 1 WHERE parent = 121;
UPDATE cj_term_taxonomy SET parent = 2 WHERE parent = 122;
UPDATE cj_term_taxonomy SET parent = 3 WHERE parent = 123;
UPDATE cj_term_taxonomy SET parent = 4 WHERE parent = 124;
UPDATE cj_term_taxonomy SET parent = 5 WHERE parent = 125;
UPDATE cj_term_taxonomy SET parent = 6 WHERE parent = 126;
UPDATE cj_term_taxonomy SET parent = 7 WHERE parent = 127;
UPDATE cj_term_taxonomy SET parent = 8 WHERE parent = 130;
UPDATE cj_term_taxonomy SET parent = 9 WHERE parent = 131;
UPDATE cj_term_taxonomy SET parent = 10 WHERE parent = 132;
UPDATE cj_term_taxonomy SET parent = 11 WHERE parent = 133;
UPDATE cj_term_taxonomy SET parent = 12 WHERE parent = 134;
UPDATE cj_term_taxonomy SET parent = 13 WHERE parent = 135;
UPDATE cj_term_taxonomy SET parent = 14 WHERE parent = 136;
UPDATE cj_term_taxonomy SET parent = 15 WHERE parent = 137;
UPDATE cj_term_taxonomy SET parent = 16 WHERE parent = 138; 
UPDATE cj_term_taxonomy SET parent = 17 WHERE parent = 139;
UPDATE cj_term_taxonomy SET parent = 18 WHERE parent = 140;
UPDATE cj_term_taxonomy SET parent = 19 WHERE parent = 141;
UPDATE cj_term_taxonomy SET parent = 20 WHERE parent = 142;
UPDATE cj_term_taxonomy SET parent = 21 WHERE parent = 143;
UPDATE cj_term_taxonomy SET parent = 22 WHERE parent = 144;
UPDATE cj_term_taxonomy SET parent = 23 WHERE parent = 145;
UPDATE cj_term_taxonomy SET parent = 24 WHERE parent = 146;
UPDATE cj_term_taxonomy SET parent = 25 WHERE parent = 147;
UPDATE cj_term_taxonomy SET parent = 26 WHERE parent = 148;
UPDATE cj_term_taxonomy SET parent = 27 WHERE parent = 149;
UPDATE cj_term_taxonomy SET parent = 28 WHERE parent = 150;
UPDATE cj_term_taxonomy SET parent = 29 WHERE parent = 151;
UPDATE cj_term_taxonomy SET parent = 30 WHERE parent = 152;
UPDATE cj_term_taxonomy SET parent = 31 WHERE parent = 153;
UPDATE cj_term_taxonomy SET parent = 32 WHERE parent = 154;
UPDATE cj_term_taxonomy SET parent = 33 WHERE parent = 155;
UPDATE cj_term_taxonomy SET parent = 34 WHERE parent = 156;
UPDATE cj_term_taxonomy SET parent = 35 WHERE parent = 157;
UPDATE cj_term_taxonomy SET parent = 36 WHERE parent = 158;
UPDATE cj_term_taxonomy SET parent = 37 WHERE parent = 182;
UPDATE cj_term_taxonomy SET parent = 38 WHERE parent = 181;
UPDATE cj_term_taxonomy SET parent = 39 WHERE parent = 178;
UPDATE cj_term_taxonomy SET parent = 40 WHERE parent = 179;
UPDATE cj_term_taxonomy SET parent = 41 WHERE parent = 180;
UPDATE cj_term_taxonomy SET parent = 42 WHERE parent = 201;

Answer 1:

@塞巴斯蒂安,[畏缩] ...你打开和关闭每一个UPDATE查询之间的mysqli连接?!? 我敢肯定,这不是最好的做法。

我有一个解决方案的其他地方,可以帮助你。 它采用mysqli_multi_query()时,所有的查询语句返回true / false(不结果集)。 删除mysqli_affected_rows()和mysqli_error()如果你不想使用它们。 让我知道,如果这有助于。

严格标准:mysqli_next_result()误差mysqli_multi_query



Answer 2:

我找到了解决办法,

我有一个MySQL错误“不同步的命令,你现在不能运行此命令”。 前后各mysqli_multi_query后,我关闭的mysqli连接,我开始新的。 该解决方案为我工作。



文章来源: Can mysqli_multi_query do UPDATE statements?
标签: php mysql mysqli