【问题标题】:PHP Search form in SQL database/tableSQL 数据库/表中的 PHP 搜索表单
【发布时间】:2019-03-31 03:24:23
【问题描述】:

我有一张有很多列的表

( A , B , C , D , E)

我有搜索表单,它有效

$query = $pdo->prepare("
    SELECT * 
    FROM Database 
    WHERE Name LIKE '%{$search}%'
");

在 B 列我有名称,在 A 列我有数字。

我想从 B 列中搜索一个名称并仅在 A = 0 时显示它。

【问题讨论】:

  • select * from Database where Name like '%{$search}% AND number =0 use this query
  • 所以"...where Name like '%{$search}%' and A = 0"?使用like %% 搜索真的很慢,可以考虑使用全文搜索:dev.mysql.com/doc/refman/8.0/en/fulltext-search.html
  • 在哪里添加AND number = 0。也不要在查询中直接使用变量,你正在扼杀准备好的语句的优势。

标签: php sql forms search


【解决方案1】:
SELECT * 
FROM Database 
WHERE Name LIKE '%{$search}%' 
   AND A = 0

【讨论】:

  • ("SELECT * FROM zentraldatenbank WHERE Interne_Name LIKE '%{$search}%' AND SKU = 0");不工作..
  • 你应该提供更多信息。有关您提供的信息,这是解决方案。
【解决方案2】:

SQL 查询如下,使用“?”在 LIKE 使用准备好的语句逻辑时,它会在下一行替换为变量 $search。

$query = $pdo->prepare("
    SELECT * 
    FROM Database 
    WHERE B LIKE '%?%' AND A=0
");
$sth->execute(array($search));

【讨论】: