下面是mysql准备的用于搜索表的语句。
表中有一个is U活动列。用户可以选择搜索true(1)、false(0)或All。在所有语句的情况下,需要同时搜索true和false。
当系统通过:isActive绑定时,如果用户希望同时搜索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 - PHP PDO MYSQL所有,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29771335/

10-12 06:34