2

我有 2 个问题

我经常看到这个

    $sql->bindParam(':xxx', $yyy, PDO::PARAM_zzz);
    $sql->execute();

为什么不使用 (1)

$sql->execute(array(':xxx'=>$yyy));

如果价值太多我应该使用(2)

    $sql->bindParam(':aaa', $bbb, PDO::PARAM_zzz);
    $sql->bindParam(':ccc', $ddd, PDO::PARAM_zzz);
    $sql->bindParam(':eee', $fff, PDO::PARAM_zzz);
    $sql->execute();

或者

    $sql->execute(array(':aaa'=>$bbb,':ccc'=>$ddd,':eee'=>$fff));
4

1 回答 1

7

第一个的答案很简单。一个普通的 PHP 用户肯定是一个狂热的程序员,他们通过例子而不是理解来学习。这就是为什么迄今为止大多数 php 代码在上个世纪的实践中质量很差的原因。

所以它适用于你提出的问题。PHP 用户看到了一个包含所有这些冗长而冗长的bindParam方法的示例,并进一步使用它。几乎没有人会像你一样费心问自己一个问题,而是继续模仿他们有一天学到的行为。
就如此容易。

在一些特殊情况下,您确实需要单独绑定,但确实太少见而无法养成习惯。严格来说,我只知道一个 -打开仿真时的一个 LIMIT 原因。

顺便说一句,我个人觉得第二种方法太罗嗦了,并以这种方式使用它(当然使用位置占位符):

$sql->execute(array($bbb,$ddd,$fff));
于 2013-09-03T04:54:51.860 回答