PHP PDO MYSQL WHERE ALL

标签 php mysql pdo

我有以下用于搜索表的 mysql 准备语句。 表中有一个 is_active 列。用户可以选择搜索真 (1)、假 (0) 或全部。在所有语句的情况下都需要搜索 true AND false。

由于系统是通过 :isActive 绑定(bind)的,如果用户想要同时搜索 true 和 false,我需要向 :isActive 应用什么值?在此先感谢您的帮助。

$stmt = $conn->prepare(
    'SELECT company_id, name, alias, fk_company_type as type, is_active as active
     FROM company 
     WHERE is_active = :isActive 
     AND name LIKE :srchField'
);

$stmt->bindParam(':srchField', $srchField, PDO::PARAM_INT); 
//bind :srchField to $srchField in sql statement
$stmt->bindParam(':isActive', $isActive, PDO::PARAM_INT);

最佳答案

有一个 php 标签可以检查变量是否为整数,您可以使用它来解决这个问题。

$stmt = $conn->prepare('SELECT company_id, name, alias, fk_company_type as type, is_active as active FROM company WHERE (is_active = :isActive) AND (name LIKE :srchField)');

$stmt->bindParam(':srchField', $srchField, PDO::PARAM_INT); //bind :srchField to $srchField in sql statement

$isActive = is_int($int) ? $int : '0 OR 1';  // $int is an argument which to search option.
$stmt->bindParam(':isActive', $isActive, PDO::PARAM_INT);

关于PHP PDO MYSQL WHERE ALL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771335/

相关文章:

php - PDO - 搜索是查询整个术语而不是单独查询每个术语

php - Codeigniter htaccess 删除 index.php 和 www

mysql - 查找多表 MySQL 数据库中缺失的行

java - 如何将User_Id传递给android中的每个 Activity ?

mysql - 创建触发器错误 : invalid syntax

php - PHP 脚本未添加 MySQL 数据

php - PDO 不返回任何内容

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - 此场景的操作属性值是多少?

php - iOS 推送通知密码