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 关注
- 116 浏览
添加回答
举报