我有一个带有查询的 php 代码:
$query = "SELECT * FROM TDdb WHERE status = $status AND occupation =$occupation";
我正在将客户端应用程序的状态和职业值发送到此 php 代码。 当我同时发送身份和职业时,这有效。但如果我只发送状态而不发送职业(我的意思是无论职业是什么),我希望它返回行。
有人有什么建议吗? 我将不胜感激任何帮助。
PS:我想在没有 if 语句的情况下执行此操作,而只是更改查询
最佳答案
我个人会创建一个基本查询并在有条件的地方附加条件,如下所示:
$sql = 'SELECT * FROM TDdb';
$conditions = array();
$args = array();
if ($action) {
$conditions[] = 'status = :status';
$args[':status'] = $status;
}
if ($occupation) {
$conditions[] = 'occupation = :occupation';
$args[':occupation'] = $occupation;
}
if ($conditions) {
$sql .= ' WHERE ' . join(' AND ', $conditions);
}
$stmt = $db->prepare($sql);
$stmt->execute($args);
关于php - 如何选择所有条件为空的地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061316/