2 回答

TA貢獻1884條經驗 獲得超4個贊
首先,使用準備好的語句,不要將發布數據直接插入數據庫查詢。直接使用 post 數據意味著你容易受到 sql 注入攻擊。
正如@DanielReed 所指出的,正確的格式是
INSERT INTO table_name (column_list) VALUES (value_list_1), (value_list_2), (value_list_3);
您可以動態構建它:
$ids = $_POST['ids'];
// Make sure we get the correct number of ? for prepared statements
$params = str_repeat('(?), ', count($ids));
// Strip the trailing space and comma
$params = substr($params, 0, -2);
$sql = 'INSERT INTO `mydb`.`dbtable`(`COL_ID`) VALUES ' . $params;
現在您可以使用 $sql 作為查詢,使用 $ids 作為準備好的語句的值。這可以防止 sql 注入。

TA貢獻1773條經驗 獲得超3個贊
PHP 將其作為數組接收。
SQL 語法希望它具有以下語法:
INSERT INTO table_name (column_list)
VALUES
(value_list_1),
(value_list_2),
...
(value_list_n);
所以你可以做的是:
$sql = "INSERT INTO `mydb`.`dbtable`(`COL_ID`) ";
foreach($ids as $value){
$sql .= "(".$value.") ";
}
- 2 回答
- 0 關注
- 158 瀏覽
添加回答
舉報