使用 PHP 和 MySQLi 高效、安全地插入多个值
要安全地插入多个值,避免 SQL 注入和堆栈溢出,请考虑以下事项
方法 1:使用Prepared 增强循环语句
维持当前的方法,但进行一些修改以提高效率:
$stmt = $mysqli->prepare("INSERT INTO table (link) VALUES (?)"); $stmt->bind_param("s", $one); foreach ($array as $one) { $stmt->execute(); }
此方法在循环外初始化准备好的语句,提高性能。
方法 2:基于事务的方法
为了进一步优化,利用事务:
$stmt = $mysqli->prepare("INSERT INTO table (link) VALUES (?)"); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $mysqli->query("COMMIT");
通过将插入包装在事务中,利用了 MySQL 的缓冲系统,从而显着提高了速度。
测试和结果
在 10,000 次迭代的性能测试中,发现基于事务的方法大大提高了性能更快:
因此大规模推荐使用基于交易的方式插入操作。
以上是如何使用PHP高效、安全地将多个值插入MySQL?的详细内容。更多信息请关注PHP中文网其他相关文章!