2014-10-08 87 views
0

我有一个MySQL表,其中我有一列,我想插入多个整数,逗号分隔。 (如1,2,3,4)。 我从一种形式传递这些整数值和我正确地接收他们在我的PHP文件作为数组:PHP:将整数数组插入MySQL数据库

阵列([0] => 3 [1] => 4)

但现在我要插入我的数据库,但我不断收到:

注意:数组字符串转换在

这是h嗷嗷我收到我的岗位值并将其放入到一个数组:

$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

为什么你想使它整数而不是varchar?它的数量不可能有逗号。 – 2014-10-08 09:37:15

回答

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

这可能会起作用,但我需要将数据作为整数存储在数据库中(因为有另一个表的外键)。那么是否可以在表格中存储如下数据:3,4,5,6(用逗号)作为整数? – Stev 2014-10-08 05:09:05

+0

不,你可以使用它作为文本,对于整数应该只有一个整数值。 如果你想从这个字符串(1,2,3)中搜索一个键,那么你可以使用mysql的find_in_set()函数。 find_in_set(搜索字符串,列); 希望这有助于 – 2014-10-08 09:37:13

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

我已经设法修复它,我想我没有很好地解释我的问题。基本上我是想多外键插入一排,所以我现在所做的是用相同的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); 
    } 

也做了工作。无论如何感谢您的帮助。