php - 为什么 "if empty"在显示搜索结果时不起作用

标签 php mysql pdo

我正在创建一个搜索引擎,以便从 MySQL 检索一些数据。

我不知道为什么当我将该字段留空时,它仍然显示数据库表的所有内容

有什么猜测吗?

谢谢您,并对困惑的代码表示歉意。

代码如下:https://codeshare.io/Gbr9W6

最佳答案

当您想要查找相似的内容而不是查找确切的内容时,使用

LIKE 子句而不是 = 。示例:

如果您想查找雷的名字

SELECT first_name from users WHERE firstname = "Ray";

如果你想查找包含 ray 的名字,

SELECT first_name from users WHERE firstname LIKE "%ray%";


现在,在您的情况下,由于名字为空,因此查询变为

SELECT * FROM users WHERE firstname LIKE '%%'

因此它匹配所有内容并返回所有值。

代码更正:
因此,如果您不想在名字为空时检索所有值,则可以对代码执行以下操作

if(!empty($firstname))
{
    $firstname = "%".$firstname."%";
}

并将此代码更改为

$statement->execute(array(
    ':firstname' => $firstname
));

当提交的名字为空时,这不会获取任何结果

LIKE clause is equal to WHERE clause when used without '%'

.

祝你好运!!!

关于php - 为什么 "if empty"在显示搜索结果时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46126888/

相关文章:

mysql - 当 "rm/usr/local/mysql"返回权限错误时如何卸载mySQL?

database - 我想在另一台服务器上创建 mysql 数据库的副本

mysql - 如何使用 mysqldump 在帐户之间复制 View ?

php - 使用 php pdo 从一行中获取 2 个值的短代码

php - Android - 将数据从 acra 发送到 php 脚本

php - JavaScript 和 PHP 网页设计

php - undefined variable : pdo, 调用成员函数 prepare() on null

php - 从 mysql_connect() 获取 PHP PDO 连接?

php - 编辑表单时无法检索下拉列表和单选按钮

php - 如何以表格形式显示数据