我想通過數組在數據庫中發送數據,但它沒有插入。如何從數組中插入數據
<?php
if(isset($_POST['submit'])){
$name=$_POST['name'];
$last=$_POST['last'];
$des=$_POST['des'];
$insData = array($name,$last,$des);
foreach ($insData as $key => $val){
echo $val."<br>";
}
$v = implode(", ", $val);
$query=mysqli_query($connect,"insert into name(name,last,des) VALUES ('$v')");
if($query){
echo "ok data";
}
else {
echo mysqli_error($connect);
}
}
?>
您的代碼很容易受到SQL注入式攻擊。您應該使用參數化查詢和準備語句來幫助防止攻擊者通過使用惡意輸入值來危害數據庫。 http://bobby-tables.com/給出了風險的解釋,以及如何使用PHP/mysqli安全編寫查詢的一些示例。 – ADyson
無論如何,檢查錯誤和變量的值。在implode調用期間,很可能$ val沒有值,因爲您嘗試在foreach循環的範圍之外使用它。你的意思是內爆$ insData嗎?但正如我上面所說,不要這樣做,使用適當的參數化查詢,除非你想讓自己容易受到黑客攻擊。任何值得閱讀的mysqli教程都應該說明如何做到這一點。 – ADyson
您的代碼有邏輯錯誤,正如其他人所說,它的注射效果也非常差。你應該回頭看一些關於如何將數據插入數據庫的教程。我們實際上可以更正你的代碼,但你不會從中學到任何東西。正如我所看到的,您缺乏編程基礎知識,還包括變量範圍以及循環內變量的情況。 – Twinfriends