Как я могу вставить массив переменных в базу данных индивидуально в php? - PullRequest
0 голосов
/ 21 апреля 2020

Как я могу вставить массив в базу данных индивидуально, он отображает ошибку. Я хочу вставить их все сразу ... иногда массив может быть больше 3, 5 или 10.

$roll_num = '111,222,333';
$rollnum = explode(",",$roll_num);

$sql ="INSERT INTO eyfstb(specialnum)  VALUES('$rollnum[]')";

if($db->query($sql)== TRUE){
    echo "true";
}else{
     echo "false";
}

Ответы [ 4 ]

1 голос
/ 21 апреля 2020

Кстати, ваша переменная $ roll_num не является массивом. И функция разнесения разделит вашу строку на строку, как сказано здесь: https://www.php.net/manual/en/function.explode.php

Для этого вы можете построить свой массив со своими значениями внутри, например:

$roll_num = array('111', '222','333');

И INSERT INTO благодаря al oop:

for ($i = 0; $i < count($roll_num); $i++) {

    $sql = "INSERT INTO eyfstb(specialnum)  VALUES(" . $roll_num[$i] . ")";
    $db->query($sql);
    $db->execute();

}

Это должно работать:)

1 голос
/ 21 апреля 2020

Как я понимаю, вы хотите вставить новую строку для каждой ячейки массива. Для этого я бы порекомендовал:

$roll_num = '111,222,333';
$rollnum = explode(",", $roll_num);

$sql = "INSERT INTO eyfstb(specialnum) VALUES('" . implode("'),('", $rollnum) . "')";

Это даст следующее SQL:

INSERT INTO eyfstb(specialnum) VALUES('111'),('222'),('333')

и будет более эффективным, чем зацикливание и вставка каждой итерации.

1 голос
/ 21 апреля 2020

Вы можете вставить его динамически в Database, и это решит вашу проблему. : D

  $roll_num = '111,222,333';
  $rollnum_arr = explode(",",$roll_num);

  for($x = 0; $x < count($rollnum_arr); $x++){
      $sql ="INSERT INTO eyfstb(specialnum)  VALUES(".$rollnum_arr[$x].")";
  }

  if($db->query($sql) == TRUE){
      echo "true";
  }else{
      echo "false";
  } 
1 голос
/ 21 апреля 2020

Функция разнесения преобразует ваш массив в несколько индексных переменных, поэтому в отношении вашего вопроса это должно быть:

$roll_num = '111,222,333';
$rollnum = explode(",",$roll_num);

$sql ="INSERT INTO eyfstb(specialnum)  VALUES('$rollnum[0]')";

if($db->query($sql)== TRUE){
    echo "true";
}else{
     echo "false";
}

Если вы хотите вставить все из них, вы можете либо сохранить его как JSON в вашей таблице или создайте дополнительные столбцы.

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