我是 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/