我是PDO和關聯數組的新手,但我正在取得不錯的進展。我已經建立了這個代碼HTML表單保存到一個記錄:
$str_sql = "UPDATE tbl_benutzer SET ";
foreach($_POST as $key=>$value){
if($key=='id'){continue;}
$str_sql .= $key." = :".$key.", ";
}
$str_sql = substr($str_sql,0,-2)." WHERE id = :id";
///////SAVE DATA TO DB///////
$stmt = $conn->prepare($str_sql);
$stmt->execute($_POST);
現在我想以適應相同的代碼的HTML表單的內容保存到多個記錄。這裏的HTML:
<input name="id[]" value="1">
<input name="tarif[]" value="A">
<input name="mitgliedschaft[]" value="X">
<input name="gebuehr[]" value="100">
<input name="id[]" value="2">
<input name="tarif[]" value="B">
<input name="mitgliedschaft[]" value="Y">
<input name="gebuehr[]" value="200">
<input name="id[]" value="3">
<input name="tarif[]" value="C">
<input name="mitgliedschaft[]" value="Z">
<input name="gebuehr[]" value="300">
而這裏的$ _POST數組:
Array ([id] => Array ([0] => 1 [1] => 2 [2] => 3)
[tarif] => Array ([0] => A [1] => B [2] => C)
[mitgliedschaft] => Array ([0] => X [1] => Y [2] => Z)
[gebuehr] => Array ([0] => 100 [1] => 200 [2] => 300))
這是我到目前爲止已經試過,但我的頭只是沒有得到它周圍!:
$str_sql = "UPDATE tbl_stamm_tarif SET ";
foreach($_POST as $key=>$value){
if($key=='id'){continue;}
$str_sql .= $key." = :".$key.", ";
}
$str_sql = substr($str_sql,0,-2)." WHERE id = :id";
echo $str_sql;
///////SAVE DATEN TO DB///////
$stmt = $conn->prepare($str_sql);
foreach($_POST as $key=>$value){
foreach($value as $key2=>$value2){
$stmt->execute(array($key=>$value2));
}
}
在此先感謝您的幫助!
謝謝。作品一種享受!你認爲什麼是阻止國外注射的更好方法? 1.從數據庫中獲取列名並將它們與鍵進行比較,或者2.從數據庫獲取列名並從那裏構建sql語句。 – 2015-03-26 11:07:14
@RichardTinkler NP。看到更新:)噢,如果你使用這個答案,請接受! – Arth 2015-03-26 14:41:06
謝謝關節。聽起來像我正在重新發明輪子!你會推薦哪些框架來簡單選擇,更新和插入? – 2015-03-27 08:27:34