PHP: вставка массива целых чисел в базу данных MySQL

У меня есть таблица MySQL, в которой у меня есть столбец, куда я хочу вставить несколько целых чисел, разделенных запятой. (как 1,2,3,4).
Я передаю эти целочисленные значения из формы и правильно получаю их в своем php-файле в виде массива:

Массив ([0] => 3 [1] => 4)

Но теперь я хочу вставить это в свою базу данных, но я продолжаю получать:

Примечание: преобразование массива в строку в

Вот как я получаю свои значения постов и помещаю их в массив:

$project_type = substr($_POST['project_type'], 0, -1); //the substring to remove the last comma
$project_type_array = explode(',', $project_type);

И вот как я это вставляю:

$SQL_project_has_type = "INSERT INTO project_has_project_type(project_ID_project, project_type_ID_project_type)
VALUES('{$row['ID_project']}', {$project_type_array})";

mysql_query($SQL_project_has_type);

Любая помощь приветствуется, спасибо!

0

Решение

закодируйте массив в json перед сохранением в базе данных и декодируйте объект в массив, когда вы читаете значение.
В php вы можете кодировать, вызывая json_encode () и возвращать исходный массив с помощью json_decode ().

0

Другие решения

Чтобы вставить массив в базу данных, вы можете сериализовать массив как

 $project_type_array = serialize( $project_type_array );

И десериализовать для использования из базы данных.

Если вы хотите вставить данные только как (1,2,3), тогда примените foreach к массиву и сделайте строку
из значений, таких как

$value = '';
foreach( $project_type_array as $val ){

$value = $val.',';

}

$value = rtrim( $value, ',' ); // to remove last comma from the string
0

Попробуй это

<?php

$array = Array ( 0 => 3 ,1 => 4 );
$project_type_array = implode(',',$array);

print_r($project_type_array);

$SQL_project_has_type = "INSERT INTO project_has_project_type(project_ID_project, project_type_ID_project_type)
VALUES('".$row['ID_project']."','".$project_type_array."')";

mysql_query($SQL_project_has_type);
?>
0

Мне удалось это исправить, я думаю, что плохо объяснил свою проблему. По сути, я пытался вставить несколько внешних ключей в одну строку, поэтому теперь я вставил несколько строк с одинаковым идентификатором, но с разными внешними ключами, с помощью цикла for:

$project_type = substr($_POST['project_type'], 0, -1);
$project_type_array = explode(',', $project_type);

for($i = 0; $i < count($project_type_array); ++$i){
$SQL_project_has_type = "INSERT INTO project_has_project_type(project_ID_project,project_type_ID_project_type)
VALUES('{$row['ID_project']}', {$project_type_array[$i]})";
mysql_query($SQL_project_has_type);
}

Это сделало работу. В любом случае, спасибо за помощь.

0
По вопросам рекламы [email protected]