php - MySQL 中的多个Where 语句

标签 php mysqli

我有一个 SQL 语句,我希望 WHERE 部分由调用函数动态填充。调用该语句的函数应该能够通过“OR”传递一个或多个参数。不幸的是,该语句始终只采用第一个条目。

$category = 'cat1' OR 'cat2' OR 'cat3';
$result = getEntries($category, $mysqli);

function getEntries($category, $mysqli){
    $queryData = $mysqli->prepare("SELECT * FROM items WHERE category = ?"); 
    $queryData->bind_param("s", $category);
    $queryData->execute();
    $queryData = $queryData->get_result();
    return $queryData; 
}

我只得到“cat1”的结果 感谢您的帮助

最佳答案

您正在使用OR运算符来分配一个变量,该变量一次分配一个值,如果您想要动态地分配类别数量,那么您可以修改代码,如下所示:

$categories = ['cat1','cat2','cat3'];
$result = getEntries($categories, $mysqli);

function getEntries($categories, $mysqli){
   $plcs = implode(',',array_fill(0,count($categories)-1, "?");

   $queryData = $mysqli->prepare("SELECT * FROM items WHERE category IN ({$plcs})"); 
   $queryData->bind_param(str_repeat("s", count($categories)), ...$categories);
   $queryData->execute();
   return $queryData->get_result();

}

关于php - MySQL 中的多个Where 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59240285/

相关文章:

PHP/Linux shell 不需要的字符

php - Laravel-自定义请求最终不返回任何错误消息

php - 转义 DB 整个数组

php - 如何使用 SQL 和 PHP 从数据库 (phpMyAdmin) 的字段中获取/请求所有值?

php - 为什么搜索会抛出对未定义错误方法 stmt::fetch_row() 的调用?

php - 将 WordPress 网站从实时迁移到本地时,特色图像被破坏

php - Javascript 从数据库中获取值

php - 网站和数据库 : Check if username exists

php - MySQL 查询 - 有点棘手

php - 如何排除 Mecab 解析器功能障碍