我正在尋找一種SQL注入安全技術,以便通過PHP和MySQLi一次插入很多行(大約2000年)。 我有一個必須包含所有值的數(shù)組。目前,我正在這樣做:<?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。什么是更快的方法(例如一次將它們?nèi)坎迦??),但是仍然可以防止SQL注入(如準備好的語句)和stackoverflows?謝謝!
3 回答

至尊寶的傳說
TA貢獻1789條經(jīng)驗 獲得超10個贊
再試一次,我看不出為什么您的原始代碼在進行較小的修改后就無法使用:
$query = "INSERT INTO table (link) VALUES (?)";$stmt = $mysqli->prepare($query);$stmt->bind_param("s", $one);foreach ($array as $one) { $stmt->execute();}$stmt->close();

動漫人物
TA貢獻1815條經(jīng)驗 獲得超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);}
添加回答
舉報
0/150
提交
取消