我在更新/返工一些数据库代码,我在想,我应该中间真正使用预处理语句的期望.
拿这个例子代码:(
裸露在我身边,我知道它很难看 - 我写的)
$values = '';
for ($i = 0; $i < $count; $i++) {
$name = mysql_real_escape_string ($list[$i][1]);
$voc = mysql_real_escape_string ($list[$i][3]);
$lev = $list[$it][2];
$lev = is_numeric ($lev)? $lev : 0;
$values .= ($values == '')? "('$name', '$voc', $lev)" : ", ('$name', '$voc', $lev)";
}
if ($values != '') {
$core->query ("INSERT INTO onlineCList (name, voc, lev) VALUES $values;");
}
Run Code Online (Sandbox Code Playgroud)
现在,除了可读性(理智性)明显增加以及max_packet_size停止成为问题的事实之外,当我重新编写使用预准备语句时,我是否应该期待性能的任何变化?我正在远程连接到MySQL服务器,我担心发送多个小数据包会比发送一个大数据包慢得多.如果是这种情况,MySQLi/mysqlnd可以缓存这些数据包吗?
另一个例子:
$names = '';
while ($row = mysql_fetch_array ($result, MYSQL_ASSOC)) { …Run Code Online (Sandbox Code Playgroud)