我很熟悉老的php mysql擴展。是否有可能將mysqli準備語句與多個插入?
我正在使用mysqli擴展的第一個腳本。
我將要插入大量的行到動態生成的表中。
是否可以使用預先準備的語句將多行插入到表中,而無需事先知道每次將要插入的新行數?
$stmt = $mysqli->prepare("INSERT INTO `activity` (`id`, `name`, `type`) VALUES ?, ?, ?;");
如果這是不可能的,這將是更有效的:
- 事先準備好的聲明,同時
非事先準備好的聲明一行,約50行同時
// prepared statement $stmt = $mysqli->prepare("INSERT INTO `activity` (`id`, `name`, `type`) VALUES (?, ?, ?)"); for($i=0;$i<$limit;$i++) { $stmt->bind_param('iss', $id[$i], $name[$i], $type[$i]); $stmt->execute(); } // non-prepared statement $query = "INSERT INTO `activity` (`id`, `name`, `type`) VALUES "; for($i=0;$i<$limit;$i++) { $query .= "\n(".$mysqli->real_escape_string($id[$i]), $mysqli->real_escape_string($name[$i]), $mysqli->real_escape_string($type[$i])."),"; } $query = substr($query, 0, -1).';';
PHP v.5.3.8
MySQL的訴5.1.60
+1切換到mysqli ...你寫的第一個選項不會工作...至於速度,你可以在本地測試它並找出:D我有興趣知道 –
你解答了你的問題你自己。對於每對值,綁定值並執行語句。 Idk爲什麼你首先要問。 –