通过 SQL 注入缓解在 MySQLi 中高效插入多行
使用 PHP 和 MySQLi 将大量行插入 MySQL 数据库需要一种既安全又高效的技术。在处理此类数据量时避免 SQL 注入可能具有挑战性。
解决方案
要解决此问题,请考虑使用事务对插入操作进行分组。这种方法涉及将准备和绑定操作移到循环之外,如下所示:
$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");
事务的好处
实现
请记住在 PHP 循环之外执行 START TRANSACTION 和 COMMIT 查询以确保整个操作被视为单个事务。这种方法将准备好的语句的安全性与批量插入的效率结合起来,同时减少堆栈溢出。
以上是如何高效地向 MySQLi 中插入多行,同时防止 SQL 注入?的详细内容。更多信息请关注PHP中文网其他相关文章!