php - 使用空数组作为执行参数

标签 php pdo

我是 PDO 的读者,我想知道这两种方法之间有什么区别:

public function query($sql)
    {
        $req = $this->db->prepare($sql);
        $req->execute();
        return $req->fetchAll(PDO::FETCH_OBJ);
    }

public function query($sql, $data  = array())
    {
        $req = $this->db->prepare($sql);
        $req->execute($data);
        return $req->fetchAll(PDO::FETCH_OBJ);
    }

在第二种方法中,execute有一个空数组作为参数而第一个没有,execute使用空数组作为参数有什么作用?

最佳答案

默认情况下该数组仅为空。您可以在该数组中传递值,它们将被适本地插入到您的 SQL 语句中(即 - 数组键 => 字段名称)。

在函数参数中定义一个空数组表明这是一个可选参数,并且您不会被迫传递它 - 仅当它相关时。例如,执行 INSERT 命令时。如果您不向 $data 参数传递任何值,它的默认值将只是一个空数组。

使用默认参数的示例 -

function saySomething($text="Hello World!"){
  echo $text;
}

saySomething(); // will echo out the default "Hello World!"
saySomething("Goodbye World!"); // will echo out "Goodbye World!" as specified. 

关于php - 使用空数组作为执行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461535/

相关文章:

php - PDO::FETCH_OBJ 是否可以将 null 字段的值设置为 null,而不是保留属性未定义?

mysql pdo : how to detect if a statement made an insert or updated a preexisting row

javascript - 当详细信息传递到模态时,id 未定义

javascript - 具有相同类的 anchor 标记在 jquery 中单击按钮时不返回值

php - 无法从 MSSQL 获取 varbinary 数据

php - 从 URL 参数在表中搜索名字和姓氏

php - CDbCommand执行SQL语句失败: SQLSTATE[42000]:

php - 在 PHP 中测试可选参数

php - URL 中断中的 %2F 并且不引用所需的 .php 文件