$randomvariable=$_GET['randomvariable'];
$search="SELECT * from objects
WHERE transactiontype='$randomvariable'
order by id DESC";
Now if $randomvariable
是空的(什么都没有),我希望它返回所有行。目前,如果它为空,则不会返回任何内容,因为它基本上不会从所有行中搜索任何内容。
$randomvariable = ESACPE_MYSQL_STRING($_GET['randomvariable']);
$search =
"SELECT * FROM objects " .
(empty($randomvariable) ? "" : "WHERE transactiontype='$randomvariable' ") .
"ORDER BY id DESC";
Where ESCAPE_MYSQL_STRING
是用于转义字符串的相关函数,适用于您使用的任何 MySQL 驱动程序。
另一种更模块化的方式:
$search = array(
"select" => "SELECT * FROM objects",
"where" => "WHERE transactiontype='$randomvariable'",
"order" => "ORDER BY id DESC"
);
if (empty($randomvariable)) {
unset($search["where"]);
}
$search = implode(' ', $search);
这样做的好处是,您可以轻松地添加、删除或更改任何情况下的查询,并轻松访问查询的任何部分。
你也可以这样做CASE() http://dev.mysql.com/doc/refman/5.0/en/case.html在 SQL 中,但它有点麻烦,而且你也不应该期望良好的性能:
SELECT * FROM objects
WHERE transactiontype LIKE
CASE WHEN '$randomvariable' = '' THEN
'%'
ELSE
'$randomvariable'
END CASE
ORDER BY id DESC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)