首页 >后端开发 >php教程 >如何高效向MySQL插入2000行,同时防止SQL注入和堆栈溢出?

如何高效向MySQL插入2000行,同时防止SQL注入和堆栈溢出?

Patricia Arquette
Patricia Arquette原创
2024-12-13 10:23:10558浏览

How Can I Efficiently Insert 2000 Rows into MySQL While Preventing SQL Injection and Stack Overflow?

mysqli 中的高效批量插入:防止 SQL 注入和堆栈溢出

安全、高效地将大量数据插入 MySQL 数据库对于许多应用程序至关重要。本问题探讨了有效插入 2000 行同时确保 SQL 注入保护的技术。

提供的代码片段迭代一组值,为每次插入准备并执行单独的查询。虽然可以防止 SQL 注入,但这种方法效率低下,并可能导致堆栈溢出。

事务的增强解决方案:

更优化的解决方案涉及利用 MySQL 事务。通过将插入分组到单个事务中,数据库可以优化流程并显着减少执行时间。

$array = array("array", "with", "about", "2000", "values");
$query = "INSERT INTO table (link) VALUES (?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $one);

$mysqli->query("START TRANSACTION");
foreach ($array as $one) {
    $stmt->execute();
}
$stmt->close();
$mysqli->query("COMMIT");

性能比较:

此技术提供了基准测试证明,速度显着提高:

  • 没有事务:226秒
  • 使用事务:2 秒

这对于测试用例而言,速度提升了两个数量级,令人印象深刻。

通过利用事务,您可以高效地插入批量数据,同时保持 SQL 注入安全性并避免堆栈溢出。

以上是如何高效向MySQL插入2000行,同时防止SQL注入和堆栈溢出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn