我有一个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 :(得分: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);
}
这就完成了工作。无论如何,谢谢你的帮助。