gpt4 book ai didi

php - 我可以使用准备好的语句启用/禁用部分查询吗?

转载 作者:行者123 更新时间:2023-11-30 23:18:24 25 4
gpt4 key购买 nike

我正在使用以下查询:

SELECT foo, bar FROM mytable WHERE foo=:foo AND userid=:userid;

我想为“admin”类用户放开 AND userid=:userid 部分(他们可以看到所有用户的 foo)。

有没有办法使用 PDO 准备好的语句来做到这一点?还是我要使用字符串连接来创建两个不同的查询?我也在考虑使用某种 LIKE 结构,但感觉有点笨拙。

最佳答案

不,你不能这样做。

不过,您可以有两个准备好的语句并使用逻辑在它们之间进行选择。

$queryWithUser = $pdo -> prepare ('SELECT foo, bar FROM mytable WHERE foo=:foo AND userid=:userid;');
$queryWithoutUser = $pdo -> prepare ('SELECT foo, bar FROM mytable WHERE foo=:foo;');

$result = $doQueryWithUser?
$queryWithUser -> execute (array ('foo' => 123, 'userid' => 456)):
$queryWithoutUser -> execute (array ('userid' => 456));

或者您可以根据需要在特定时间生成您需要的准备好的语句。

$queryString = 'SELECT foo, bar FROM mytable WHERE foo=:foo';
if ($doQueryWithUser) {
$queryString .= ' AND userid=:userid';
}
$query = $pdo -> prepare ($queryString . ';');

关于php - 我可以使用准备好的语句启用/禁用部分查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564327/

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