php - 如何在 SQL 查询和 PHP 中匹配字符串中的单词并检索数据?

标签 php mysql

我有一个像这样的 MySql 表

Brand 
--------
Honda
Sozuki
Oddi
.
.
.

现在 PHP 中有一个动态数组:

$brand = ["Sozuki","Honda"]

问题是如何检索与上面数组中的单词匹配的数据。我试过这个:

$qry = 'select * from brand where brand Like '% $brand[0] %' and '% $brand[1] %';

它工作得很好,但是如果我没有特定长度的数组,你可以说动态数组,我该怎么办。 任何解决方案将不胜感激谢谢

最佳答案

您不想使用 OR 而不是 AND 吗?

如果是这样,请使用类似的东西(注意:未经测试):

<?php
$brands     = array(1, 2, 3, 7, 8, 9);
$inQuery = implode(',', array_fill(0, count($brands), '?'));

$db = new PDO(...);
$stmt = $db->prepare(
    'SELECT *
     FROM brand
     WHERE brand IN(' . $inQuery . ')'
);

foreach ($brands as $k => $brand)
    $stmt->bindValue(($k+1), $brand);

$stmt->execute();

// Or simply $stmt->execute($brands);

关于php - 如何在 SQL 查询和 PHP 中匹配字符串中的单词并检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23991714/

相关文章:

javascript - 从本地存储中删除整个阵列

javascript - jQuery .load() 函数只改变一次内容

php - 在mysql字段中插入≠(不等于)

php - 将长 URL 重定向到 https

php - 尝试使用 Symfony2 项目清除缓存时出错

php - 使用 PHP 为 MySQL 表中两个日期之间的每周时间段的每个实例生成记录

mysql - 使用 MYSQL 处理不明确的列名

mysql - MYSQL 中的条件排序。应该影响行的一部分

mysql - 如何获取 AWS EC2 MySQL 的数据库 url?

php - Laravel 5.2 Eloquent ORM hasManyThrough