Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP循环中的SQL查询在第n次迭代后失败_Javascript_Php_Jquery_Mysql_Sql - Fatal编程技术网

Javascript PHP循环中的SQL查询在第n次迭代后失败

Javascript PHP循环中的SQL查询在第n次迭代后失败,javascript,php,jquery,mysql,sql,Javascript,Php,Jquery,Mysql,Sql,格斯 我有一个代码,基本上是在一个数据库中复制一组记录,然后复制到另一个数据库。我需要对许多记录执行此操作,因此我构建了一个数组,其中包含每次修改查询的变量。以下是我的阵列的结构: $array = [ ["Brent_Chart_1", $List_Brent_Chart_1], ["Brent_Chart_2", $List_Brent_Chart_2], ["Brent_Chart_3", $List_Brent_Chart_3], et..... ] 下面是通过数组执行SQL查询的

格斯

我有一个代码,基本上是在一个数据库中复制一组记录,然后复制到另一个数据库。我需要对许多记录执行此操作,因此我构建了一个数组,其中包含每次修改查询的变量。以下是我的阵列的结构:

$array = [
["Brent_Chart_1", $List_Brent_Chart_1],
["Brent_Chart_2", $List_Brent_Chart_2],
["Brent_Chart_3", $List_Brent_Chart_3],
  et..... ]
下面是通过数组执行SQL查询的循环:

foreach ($array as list($a, $b)) {
     $queryx = "
UPDATE `meetings_ss`
SET `".$a."`= (
    SELECT `Data`
    FROM `charts`
    WHERE `ID` = ".$b."
    )
ORDER BY `ID` DESC LIMIT 1;";

 mysql_query($queryx);
}
问题如下:出于某种原因,前九条记录按预期复制,而第十条记录则没有复制任何内容。我知道变量名等没有问题,就好像我从第十条记录开始循环一样,我遇到了同样的问题:前九条被复制,但第十条失败

这让我觉得这是内存问题,或者这不是处理多个SQL查询的正确方法?有人能提出一个失败的原因吗


非常感谢您的时间。

您的订单日期和限额不在子查询范围内。。update子句不能有顺序或限制:

尝试更改代码,如:

foreach ($array as $row) {
  $queryx = 'UPDATE meetings_ss SET 
      ' . $row[0] . ' = (SELECT Data FROM charts
    WHERE ID = ' . $row[1] . ' ORDER BY ID DESC LIMIT 1)';

  mysql_query($queryx);
}

代码没有问题。问题在于DB结构和连续SQL查询最终会破坏行大小:

#1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

美元数组中有多少行?您好,谢谢您的消息。共有77行。如果子查询为,则您的order by和limit已超出。您是否尝试打印到结果查询,然后使用sql客户端手动运行它?是-并且,当我从第九个值开始时,会复制错误。无论从哪里开始,查询在第九次迭代时总是失败。这是内存问题吗?我需要释放某种内存吗?你好,哈迪,我已经实现了你的更改,同样的问题再次出现。它在第九次查询后失败,不再像预期的那样复制记录。好的,实际上你甚至不需要那个顺序或限制。。我100%确定您的问题是由您的数据引起的。打开PHP错误记录和查看并检查错误。。或者在执行之前调试生成的所有SQL子句。Hardy,对SQL查询可以执行的循环数有限制吗?我不认为数据有任何问题,正如前面提到的,我从数组中的不同行测试了它,它总是在第九行之后失败。。。我被难住了:-