我想要聰明,可能太聰明在創建一組表格,將動態地插入他們的數據到數據庫根據他們的輸入名稱。PHP動態查詢創建形式
我有它,所以它正確地建立查詢,但是當我試圖插入它失敗,說它是一個格式不正確的查詢,有沒有更好的方式做我想要實現的,但同樣呢?
<form method="post">
<input type="text" name="form_array['text']" />
<button name="insert">Go</button>
</form>
這裏是我的查詢生成,對提交形式:
$setup['table'] = "table1";
if(isset($_POST['insert'])){
$inserts = "";
$values = "";
foreach($_POST['form_array'] as $form_id => $form_data){
if(!empty($form_data)){
if(!isset($first_run)){
$first_run = 1;
$inserts .= $form_id;
$values .= "'".$form_data."'";
} else {
$inserts .= ", ".$form_id;
$values .= ", '".$form_data."'";
}
} else {
die('error');
}
}
die("INSERT INTO '".$setup['table']."' ($inserts) VALUES ($values)");
}
感謝。
這是一個非常不安全的腳本建立。你應該研究SQL注入來找出原因。爲了更直接地解決你的問題,儘管...你有一個語法問題。每組值都需要用圓括號括起來,就像下面問題的答案一樣:http://stackoverflow.com/questions/452859/inserting-multiple-rows-in-a-single-sql-query – craigts
這些都不是故意消毒,這是一個測試腳本,並完全編輯。我插入一行,所以所有的值在逗號分隔的一組括號內。 – Danny
好吧,那麼很可能你是單引號表名。刪除這些,你應該很好。除非你可能編輯了太多內容,並且改變了從實際發送到db的內容。 – craigts