Цикл Foreach, выполняющий одну часть записи массива в базу данных - PullRequest
0 голосов
/ 04 октября 2019

Вот проблема, я передаю данные через метод post, я использую для каждой переменной mysqli реальную escape-строку, все хорошо до тех пор, пока я не передам их в массив для записи каждой из них в базу данных,переходит одну часть массива, в точности $ p2 => $ pNr2, есть идеи почему?

enter image description here

      $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);
       }

1 Ответ

0 голосов
/ 04 октября 2019

Это включает в себя множество клиент-серверных обходов между MySQL и php-сервером. Это может привести к тому, что mysql не завершит обновление до получения следующего. Вы можете использовать несколько операторов, чтобы уменьшить это общение.

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

Конечно, я бы предложил использовать подготовленные заявления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...