1
我讀了很多教程,瞭解如何在一個查詢中插入多行,因爲我必須處理PHP表單(v5.4)中的多個選擇問題。INSERT INTO與MySQL和PDO的陣列
不幸的是,我的查詢中仍然有錯誤。
你能幫我嗎?
爲了更精確有關目的,我做了一個表格,我創建的數據庫中的MySQL與:
一個表(A),用於存儲從單選按鈕所有單個值和文本的問題與序列號。
每個多項選擇問題的表格,其中我在一列中列出了所有可能的答案,在另一列中列出了一個ID代碼。
和「中間」表中的每個多個選擇問題,以存儲比在表A中插入過程中自動創建的一個,並從在複選框問題
(如此選擇的值的ID相同的ID,對於一種形式充滿,我期望能獲得在表A中的一行,並儘可能多的行作爲選擇的值在每個相應的「中間」表。作爲一個測試
我的PHP代碼(僅指一個多項選擇問題):
try {
$pdo = new PDO('mysql:host=myserver_url;dbname=my_db', 'my_user','my_pass');
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
}
catch(PDOException $e) {
echo 'Fail to connect';
exit();
}
try {
if(isset($_POST['add'])){
if(isset($_POST['checkbox_name'])) {
$values = '('.implode('),(', $_POST['checkbox_name']).')';
$sql =$pdo->exec("INSERT INTO my_db.my_table (field1)
VALUES ($values) ");
}
}
}
catch(PDOException $e) {
$msg = 'ERROR PDO in ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
die($msg);
}
HTML代碼:
<body>
<form name="form_1" method="post" action="form_1.php">
<input type="checkbox" name="checkbox_name[]" value="1"><label >Telephone</label><br/>
<input type="checkbox" name="checkbox_name[]" value="2"><label >Mail</label><br/>
<input type="checkbox" name="checkbox_name[]" value="3"><label >Other</label><br/>
<br/>
<br/>
<input type="submit" name="add" value="SEND"/>
</form>
非常感謝您的幫助!
雖然沒有回答你的問題,請使用準備好的語句!僅使用PDO不會使您的腳本安全到SQL注入。使用[數組元素]問號構建和準備查詢,然後使用'$ stmt-> execute($ array)'插入它,而不是對它進行內插。檢查[這個答案](http://stackoverflow.com/a/327384/1154316)如何做到這一點。 – tillz
你讀過哪個特定的教程? –
當你將「VALUES($ values)」改爲「VALUES'($ values')」時,你可以看到你的問題 – RiggsFolly