gpt4 book ai didi

php - PDO MySql 函数接受多个参数

转载 作者:行者123 更新时间:2023-11-29 18:02:21 24 4
gpt4 key购买 nike

我有下面的 PDO 函数来执行 Mysql 查询。

public function run($sql, array $params = NULL) {

$statement = $this->pdo->prepare($sql);

if (!is_null($params)) {

foreach ($params as $key) {

$statement->bindParam(":n", $key);

}

}

$statement->execute();

return $statement->fetchAll(PDO::FETCH_CLASS);

}

这仅适用于单个参数(请参阅我的 previous question )

所以我尝试将函数中的foreach修改为

foreach ($params as $key => $value) {

$statement->bindParam($key, $value);

}

我运行查询

$variation = $query->run(
"SELECT url, title, sale_price
FROM product
where category_id = :category
and url != :url",
[ ":category" => $data[0]->category_id, ":url" => $filePathArray[1] ]
);

它返回一个空集。

最佳答案

这个功能不是必须的。您可以将参数数组直接传递给 $statement->execute(),如所述 in the documentation for PDOStatement::execute() .

它与使用 bindParam() 一样安全,同样可以防止 SQL 注入(inject)。

唯一的缺点是您无法指定每个参数的类型,但这在大多数情况下是不必要的,并且在本示例中您无论如何都没有使用它,因此您不会丢失任何内容。

关于php - PDO MySql 函数接受多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48224758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com