3 回答
TA貢獻1806條經驗 獲得超8個贊
如果您準備查詢,您還可以對其進行參數化。然后您只需準備一次查詢,但可以多次使用不同的參數運行它。
這意味著數據庫只需編譯/優化一次查詢,并且參數也可以免受 SQL 注入攻擊。
$stmt = $conection->prepare("INSERT INTO texts_form (description) VALUES(?)";
foreach($_POST['text'] as $text){
$stmt->bind_param('s', $text);
$stmt->execute();
}
或者,如果您想要一行中的 2 個字段
$all .= $_POST['text'][0] . ' ' . $_POST['text'][1];
$stmt = $conection->prepare("INSERT INTO texts_form (description) VALUES(?)";
$stmt->bind_param('s', $all);
$stmt->execute();
TA貢獻1856條經驗 獲得超5個贊
如果您想在一個數據庫行中保存兩個/所有 textarea 值,您應該只觸發一個 INSERT查詢,在循環之外。例如,您可以在插入之前連接所有文本值:
$textVal = '';
foreach($_POST['text'] as $text){
$textVal .= $text . "\n\n";
}
$consult = $conection->prepare("INSERT INTO texts_form(description)
VALUES('$textVal');");
$consult->execute();
當然,您應該關心文本中的單引號,參數化查詢會這樣做?;蛘呦襁@樣:
$consult = $conection->prepare("INSERT INTO texts_form(description)
VALUES('".mysqli_real_escape_string($link, $textVal)."');");
TA貢獻1805條經驗 獲得超9個贊
[] 將您的 HTML 響應轉換為一個數組。聽起來您想獲取整個數組,然后將其轉換為單個字符串,然后將其放入表格中的單個單元格中,對嗎?
所以不要對每個值都進行插入,先將值連接起來,然后再插入一次。
foreach($_POST['text'] as $text){
$all_text .= $text ;
}
然后清理 $all_text 并插入它。
- 3 回答
- 0 關注
- 179 瀏覽
添加回答
舉報
