1

我总是将我的值数组传递给执行,因为它似乎更容易阅读 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 如何引用值之外,两者之间是否存在性能正面/负面(小规模和大规模使用......包括重复循环)?

4

1 回答 1

-2

除了代码的可读性以及 bindParam 如何引用值之外,两者之间是否存在性能正/负

不。

这里的每个 $stmt->bindValue() 会不会是另一个数据库之旅

不。

于 2015-08-28T15:20:06.567 回答