0
您好有一个函数,通过下面传递的字符串;SQLITE从传递的值构建查询字符串
getFilterResults($id, $limit, $misc);
在我的函数中,我连接到SQLite数据库并基于传递的值构建一个查询,就像这样;
function getFilterResults($id, $limit, $misc) {
$dbConnect = new SQLite3(database);
if(!empty($limit) && !empty($id) && !empty($misc)){
$buildString = ('SELECT * FROM fields ORDER BY id DESC');
}else{
//no params filters arrived so dont filter - aka get all results
$buildString = ("SELECT * FROM fields ORDER BY id DESC");
}
$query = $dbConnect->query($buildString);
//...
}
问题是,我该如何构建查询,如果某些值是空的,我必须决定哪些值使用“WHERE” query..obviously第一个返回值不为null的开始/启动'WHERE'。
我可以看到很长的路要循环遍历每一个并构建 - 一旦发现第一个值是非空并从那里启动,但这似乎不切实际且不好实践。
//check if limit set..
if($limit) {
$doLimit = 'LIMIT '.$limit.'';
}
WHERE 'id = '.id.' AND misc = '.$misc.' '.$doLimit.'
申请'!空( )'检查每个变量并将其添加到相应的查询中。 –