bindValue / bindParam 与数组性能
bindValue / bindParam vs array performance
我总是将一组我的值传递给 execute,因为它看起来更容易阅读 imo。我最近在编写一个脚本,注意到它使用了 bindParam,后来才发现它是如何传递变量引用的(我从来不知道)。
话虽如此,在当前的项目中,我可以想到 bindParam 的很多用途,而不是我当前的数组用法。
话虽如此,bindValue/bindParam 和在执行时使用数组之间是否存在任何性能差异...尤其是在重复循环的情况下? 我发现自己做了很多 $stmt->execute( array_merge($binding_clause, $binding) );
,其中我有一些不会改变的绑定,当然还有一些会在循环中,据我所知,使用 bindParam 将是完美的。
在使用数组时添加类型 (PDO::PARAM_STR, PDO::PARAM_INT) 是否比不这样做有任何性能(我相信它是字符串默认情况下使用数组)?
两者之间的示例差异(这些是准备好的语句):
$binding = array(
'cw_account_id' => $_SESSION['user']['account_id'],
'cw_date_start' => $date_start,
'cw_date_end' => $date_end,
'cw_start' => $b_counter * 500
);
$stmt->execute($binding);
compared to
$stmt->bindValue(':cw_account_id', $_SESSION['user']['account_id'], PDO::PARAM_INT);
$stmt->bindValue(':cw_date_start', $date_start, PDO::PARAM_INT);
$stmt->bindValue(':cw_date_end', $date_end, PDO::PARAM_INT);
$stmt->bindValue(':cw_start', $b_counter * 500, PDO::PARAM_INT);
$stmt->execute();
除了上述问题,与使用数组方法时相比,这里的每个 $stmt->bindValue()
是否都是另一次数据库访问?
除了代码的可读性和 bindParam 如何引用值之外,两者之间是否存在性能 positives/negatives(小型和大型使用...包括重复循环)?
Aside from readability of code, and how bindParam references values, are there are performance positives/negatives between the two
没有
would each $stmt->bindValue() here be another trip to the db
没有
我总是将一组我的值传递给 execute,因为它看起来更容易阅读 imo。我最近在编写一个脚本,注意到它使用了 bindParam,后来才发现它是如何传递变量引用的(我从来不知道)。
话虽如此,在当前的项目中,我可以想到 bindParam 的很多用途,而不是我当前的数组用法。
话虽如此,bindValue/bindParam 和在执行时使用数组之间是否存在任何性能差异...尤其是在重复循环的情况下? 我发现自己做了很多 $stmt->execute( array_merge($binding_clause, $binding) );
,其中我有一些不会改变的绑定,当然还有一些会在循环中,据我所知,使用 bindParam 将是完美的。
在使用数组时添加类型 (PDO::PARAM_STR, PDO::PARAM_INT) 是否比不这样做有任何性能(我相信它是字符串默认情况下使用数组)?
两者之间的示例差异(这些是准备好的语句):
$binding = array(
'cw_account_id' => $_SESSION['user']['account_id'],
'cw_date_start' => $date_start,
'cw_date_end' => $date_end,
'cw_start' => $b_counter * 500
);
$stmt->execute($binding);
compared to
$stmt->bindValue(':cw_account_id', $_SESSION['user']['account_id'], PDO::PARAM_INT);
$stmt->bindValue(':cw_date_start', $date_start, PDO::PARAM_INT);
$stmt->bindValue(':cw_date_end', $date_end, PDO::PARAM_INT);
$stmt->bindValue(':cw_start', $b_counter * 500, PDO::PARAM_INT);
$stmt->execute();
除了上述问题,与使用数组方法时相比,这里的每个 $stmt->bindValue()
是否都是另一次数据库访问?
除了代码的可读性和 bindParam 如何引用值之外,两者之间是否存在性能 positives/negatives(小型和大型使用...包括重复循环)?
Aside from readability of code, and how bindParam references values, are there are performance positives/negatives between the two
没有
would each $stmt->bindValue() here be another trip to the db
没有