2015-11-03 85 views
1

我有兩個腳本的結果/輸出。如何將簡單的PHP數組插入到MySQL表中?

腳本1結果:

print_r($unit); 

OUTPUT = 

Array ([0] => http://one.com, [1] => http://two.com, [2] => http://three.com/,) 

腳本2結果:

echo $item."<br>"; 

OUTPUT = 

http://one.com, 
http://two.com, 
http://three.com, 

我尷尬未能未能導入任何一個到MySQL表,只有兩個字段:ID和URL 。

//Connect to MySQL... 

// Attempt insert query execution 

    $list=implode($unit); 

    $sql = "INSERT INTO urls (url) VALUES ('$list')"; 
    if(mysqli_query($conn, $sql)){ 
     echo "Records added successfully."; 
    } else{ 
     echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn); 
    } 

    // Close connection 
    mysqli_close($conn); 

插入件工作,但該代碼插入所有3個網址爲單個字段:

兩個腳本1和2
id url 
1 http://one.com,http://two.com,http://three.com, 

DESIRED MySQL表的結果:

id url 
1 http://one.com 
2 http://two.com 
3 http://three.com 

感謝對於你的想法!

+0

'$名單=破滅(「,」,$單位);'試試看。 –

+0

使用「for each」循環 – c4pricorn

+0

@ Fred-ii-:我認爲他希望每條記錄都有一行。 –

回答

3

你在這裏做了一些錯誤,你需要explode$unit的基礎上 '' 而不是implode

這裏是

if(is_array($unit)) $unit = implode(',', $unit); // check if array, convert to string 
$list=explode(',', $unit); 
foreach($list as $url){ 
    $url = mysqli_escape_string($conn, $url); 
    if($url == '' || empty($url)) continue; 
    $stmt = mysqli_prepare($conn, "INSERT INTO urls(url) VALUES (?)"); 
    mysqli_stmt_bind_param($stmt, 's', $url); 

    if(mysqli_stmt_execute($stmt)){ 
     echo "Records added successfully."; 
     mysqli_stmt_close($stmt); 
    } else{ 
     echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn); 
    } 
} 
+0

['$ list = implode(「, 「,$ unit);'](http://stackoverflow.com/questions/33509158/how-to-insert-simple-php-array-into-mysql-table#comment54801939_33509158)我想我的意思是」爆炸「; *我的錯*。 –

+0

你並沒有淨化你的價值觀。這是非常危險的。 – Terry

+0

是的,但OP目前只想插入(這也可以是本地項目)@Terry – Mubin