为了账号安全,请及时绑定邮箱和手机立即绑定

在mysqli中插入许多值的最佳方法?

在mysqli中插入许多值的最佳方法?

摇曳的蔷薇 2019-09-26 11:16:14
我正在寻找一种SQL注入安全技术,以便通过PHP和MySQLi一次插入很多行(大约2000年)。 我有一个必须包含所有值的数组。目前,我正在这样做:<?php $array = array("array", "with", "about", "2000", "values");foreach ($array as $one) {     $query = "INSERT INTO table (link) VALUES ( ?)";     $stmt = $mysqli->prepare($query);     $stmt ->bind_param("s", $one);     $stmt->execute();     $stmt->close();}?>我尝试了call_user_func_array(),但是它引起了stackoverflow。什么是更快的方法(例如一次将它们全部插入?),但是仍然可以防止SQL注入(如准备好的语句)和stackoverflows?谢谢!
查看完整描述

3 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

再试一次,我看不出为什么您的原始代码在进行较小的修改后就无法使用:

$query = "INSERT INTO table (link) VALUES (?)";$stmt = $mysqli->prepare($query);$stmt->bind_param("s", $one);foreach ($array as $one) {
    $stmt->execute();}$stmt->close();


查看完整回答
反对 回复 2019-09-26
?
动漫人物

TA贡献1815条经验 获得超10个赞

是的,您可以手动构建一个大型查询,例如:

$query = "";foreach ($array as $curvalue) {
  if ($query)
    $query .= ",";
  $query .= "('" . $mysqli->real_escape_string($curvalue) . "')";}if ($query) {
  $query = "INSERT INTO table (link) VALUES " . $query;
  $mysqli->query($query);}


查看完整回答
反对 回复 2019-09-26
  • 3 回答
  • 0 关注
  • 539 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信