Insert в базу из массива на php с определенным номером?
Есть массив $tags[1] с рандомным количеством значений, либо вообще пустой.
Array
(
[0] => xRb
[1] => TzR
[2] => bw
[3] => otT
[4] => hwi
[5] => hnb
)
Как его вставить в таблицу одним запросом, чтобы каждое значение вставлялось в новую строку? И заранее известным $news_id для всех записей текущего массива. Что-то вроде такого, только заранее неизвестно сколько всего данных в массиве.
id(int) news_id tag
1 8 xRb
2 8 TzR
3 8 bw
... ...
79 8 otT
80 8 hwi
Ответы (1 шт):
Автор решения: Kirzzz
→ Ссылка
for( $i=0;$i<count($tagsArray);$i++){
$sql01 = "INSERT INTO `table_name` (`news_id`,`tag`) VALUES (:news_id,:tag)";
$req01 = $dbh->prepare($sql01);
$req01->bindValue(':tag', $tagsArray[$i], PDO::PARAM_STR);
$req01->bindValue(':news_id', $news_id, PDO::PARAM_STR);
$req01->execute();
}
$news_id - заранее известный, $tagsArray[$i] - определенный тег. Данная структура подойдет, если массив $tagsArray, вы получаете до вставки, если же он у вас также перется из БД, то следует разбить запрос на два и сначала получить массив тегов и после уже вставлять данные. (Предполагается, что поле id(int) в БД autoincrement и является первичным ключом)