2014-10-08 36 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); 
    } 

也做了工作。無論如何感謝您的幫助。