PHP:将整数数组插入MySQL数据库

时间:2014-10-08 04:04:27

标签: php mysql sql arrays integer

我有一个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); 

欢迎任何帮助,谢谢!

4 个答案:

答案 0 :(得分:0)

在存储数据库之前将数组编码为json,并在读取值时将对象解码为数组。 在php中,您可以通过调用json_encode()进行编码,并使用json_decode()获取原始数组。

答案 1 :(得分: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

答案 2 :(得分: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); 
?>

答案 3 :(得分:0)

我设法解决了这个问题,我想我并没有很好地解释我的问题。基本上我试图将多个外键插入一行,所以我现在所做的是插入多个具有相同ID的行,但是使用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);
    }

这就完成了工作。无论如何,谢谢你的帮助。