我有这样的查询(在PHP中):
SELECT ".$info." FROM products WHERE id IN (".$id.")".($type != "" ? " AND p_type = '".$type."'" : "").";"
$info
可以是任何内容(偶数*
),但我想在结果(id, p_type
)中另外添加两列,即使它们未被选中,也必须在那里,我已经尝试了这个"SELECT id, p_type, ".$info." ...
,但它给了我一个错误,这个语法不正确,有什么帮助吗?
感谢。
答案 0 :(得分:0)
可能是因为变量为空,请尝试:
$info=($info=='')?'id, p_type':$info.',id, p_type';
SELECT ".$info." FROM products WHERE id IN (".$id.")".($type != "" ? " AND p_type = '".$type."'" : "").";"
答案 1 :(得分:0)
好的,我解决了!如果$info = "*"
需要先成为"SELECT ".$info.", id, p_type ...
答案 2 :(得分:0)
只需创建一个数组,如下所示,可以命名为
$getColumns = array("id", "p_type");
现在您必须逐个向此数组添加列,如下所示: -
$getColumns[] = "column3";
$getColumns[] = "column4";
$getColumns[] = "column5";
依此类推,如果你想获得所有列,只需将“*”添加到数组
即可$getColumns[] = "*";
然后获取所有列的列表
$columns = (in_array("*", $getColumns))? "*": implode(", ", $getColumns);
现在,您可以在查询中使用$ columns。这都是......