prepare($query_p, $cat_result[$i])); } 搜索-6ren">
gpt4 book ai didi

php - 使用 "If"语句的 mysql 查询搜索

转载 作者:行者123 更新时间:2023-11-29 04:38:21 26 4
gpt4 key购买 nike

所以,我有以下 php 查询:

for($i = 0; $i < sizeof($cat_result) ; ++$i) {          
$query_p = "SELECT * FROM $table WHERE id = %d";
$results[] = $wpdb->get_row($wpdb->prepare($query_p, $cat_result[$i]));
}

搜索依赖于包含大量数字的 $cat_result

例如,假设 $cat_result 包含以下数字:'1,3,5,21,35`

使用这 5 个数字,查询将查找数据库信息。

但是,有些情况下数据库中不存在某些数字(例如,“21”)。

然后,我得到 PHP NOTICE: trying to get property of non-object

如何编写“if”语句,以便在 id(在本例中为“21”)不存在的情况下忽略查询? (很难解释我所说的“忽略”是什么意思。我仍然希望查询进行搜索,但如果它没有找到它要查找的内容,则只需忽略该错误即可)。

最佳答案

我认为您应该重新构造您的查询。这样,只要您的数据经过清理(以防止注入(inject),因为我不确定它是否来自用户),您就可以执行以下操作:

$cat_result = implode(",", $cat_result);
$query_p = "SELECT * FROM $table WHERE id in ( $cat_result )";
$rslt = $wpdb->get_results($query_p);
// loop result

那样的话,它会在列表中找到你。

关于php - 使用 "If"语句的 mysql 查询搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35806512/

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