【问题标题】:Foreach loop jumping one part of array writing in databaseForeach 循环跳转数据库中写入数组的一部分
【发布时间】:2020-02-02 23:42:39
【问题描述】:

问题来了,我通过 post 方法传递数据,我为每个变量使用 mysqli 真正的转义字符串,到那时为止一切都很好,当我将它们传递到数组中以写入数据库中的每一个时,正在跳过数组的一部分,正是 $p2 => $pNr2,一些想法为什么?

      $array = array($p1 => $pNr1, $p2 => $pNr2, $p3 => $pNr3, $p4 => $pNr4, $p5 => $pNr5, $p6 => $pNr6,
          $p7 => $pNr7, $p8 => $pNr8, $p9 => $pNr9, $p10 => $pNr10, $p11 => $pNr11, $p12 => $pNr12, $p13 => $pNr13, $p14 => $pNr14, $p15 => $pNr15);
       foreach ($array as $arr => $key) {
           $writePlayer = "UPDATE team1 SET nume = '$arr' WHERE playerNr = '$key';";
           mysqli_query($conn, $writePlayer);
       }

【问题讨论】:

  • 使用准备好的语句。
  • 没关系,谢谢。
  • 同样的问题,@freeek 即使使用准备好的语句仍然会跳过数组的一部分,同样的。
  • 请把生成代码$p1 => $pNr连同你准备好的语句示例一起贴出来。

标签: php mysql arrays foreach


【解决方案1】:

这包括 mysql 和 php 服务器之间的许多客户端-服务器往返。这可能会导致 mysql 在收到下一个之前没有完成更新。您可以使用多个语句来减少这种沟通。

$writePlayer = '';   
foreach ($array as $arr => $key) {
       $writePlayer. = "UPDATE team1 SET nume = '$arr' WHERE playerNr = '$key';";
   }
mysqli_multi_query($conn, $writePlayer);

当然,我建议使用准备好的语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多