gpt4 book ai didi

php - PDO 多重查询理解问题

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

好吧,我很难理解如何进行某个查询。

这就是我想要完成的:

我正在尝试从查询结果中输出不同的品牌。因此,当用户搜索例如“SHOE”时,我可以输出我数据库中的所有鞋子,并且可以在用户可以选择特定品牌的一侧进行选择以过滤结果。我已经可以从 MATCH AGAINST 查询中输出我需要的所有数据,我只是不知道如何做 A query that can query my first query with PDO .

这是我的:

<?php
require_once 'login.php';
$db = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$usersearch=strip_tags($_POST['searchquery']);
$query=$db->prepare("SELECT * FROM products WHERE MATCH(description) AGAINST (? IN BOOLEAN MODE) OR MATCH(brand) AGAINST(? IN BOOLEAN MODE);SELECT DISTINCT brand FROM products");
$query->execute(array('+%'.$usersearch.'%','+%'.$usersearch.'%'));
$result=$query->fetchALL(PDO::FETCH_ASSOC);
?>

我的问题出在 “SELECT DISTINCT brand FROM products” 上。

这是执行多个查询的正确方法吗?这会选择分号左侧的每个品牌 FROM THE FIRST QUERY 还是只对数据库中的每一行执行查询?

如有任何帮助,我们将不胜感激。

我有点停滞不前。

最佳答案

不,您不能使用 PDO 在一个字符串中准备和执行多个查询。

您可以使用 mysqli::multi_query ,但没有准备。但它对多选没有用。

你可以使用 union , 但所选字段的计数必须相同。例如

SELECT brand FROM products 
WHERE
MATCH(description) AGAINST (? IN BOOLEAN MODE)
OR MATCH(brand) AGAINST(? IN BOOLEAN MODE)
UNION SELECT DISTINCT brand FROM products

附言或者只使用两个单独的查询 :^ )

关于php - PDO 多重查询理解问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16559573/

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