Php conidTransitional语句
我正在尝试为和高级搜索栏编写一个MySQL语句。本质上,如果变量不是空的,我需要它只包含WHERE语句的部分 这就是我放弃的地方:Php conidTransitional语句,php,mysql,mysqli,where,Php,Mysql,Mysqli,Where,我正在尝试为和高级搜索栏编写一个MySQL语句。本质上,如果变量不是空的,我需要它只包含WHERE语句的部分 这就是我放弃的地方: $sql = "SELECT * FROM Products WHERE if($brand != '', brand='$brand' AND, brand LIKE _%)"; 我需要这样的东西: SELECT * FROM Products WHERE (brand = variable)<-[ONLY IF VARIABLE IS NOT BLANK
$sql = "SELECT * FROM Products WHERE if($brand != '', brand='$brand' AND, brand LIKE _%)";
我需要这样的东西:
SELECT * FROM Products WHERE (brand = variable)<-[ONLY IF VARIABLE IS NOT BLANK]
如果“blank”的意思是
NULL
,则更方便:
SELECT * FROM Products WHERE brand IS NULL
如果处理的是可能为空的字符串,则如下所示:
SELECT * FROM Products WHERE brand IS NULL OR brand=''
如果你处理的东西可能是“两个空格,可能是一个或两个随机的选项卡”,那么它会变得很混乱,因此你可能希望删除应用程序代码中插入此项的任何数据。你应该使用
PDO
或MySQLi
,但下面只是给你一个想法:
$query = "
SELECT
*
FROM
Products
WHERE
1";
if( $brand != '' )
{
$query .= "
AND brand = '" .$brand ."'";
}
if( $color != '' )
{
$query .= "
AND color = '" .$color ."'";
}
但是,这将在MySQL数据库中搜索空品牌。然而,我需要检查PHP脚本中的一个变量是否为NULL,如果它不为NULL,那么就在查询中包含这个代码段。这非常有效!谢谢我并不担心它的安全性,因为只有我自己和我公司的几位经理在本地网络上使用它。“不担心它的安全性”是一句可怕的话。如果有人认为这个工具太棒了,他们开始与客户分享它怎么办?第一次就把它做好。没有借口。
$query = "
SELECT
*
FROM
Products
WHERE
1";
if( $brand != '' )
{
$query .= "
AND brand = '" .$brand ."'";
}
if( $color != '' )
{
$query .= "
AND color = '" .$color ."'";
}