使用PHP构建动态查询并获取参数

使用PHP构建动态查询并获取参数,php,Php,我的数据库中有三个表,我正在构建一个API以JSON格式显示结果 我目前的API设置如下: api.php?type=tablename 我只是: $query = "SELECT * from `" . $_GET["type"] ."` "; 很简单。我还有一个订单类型: api.php?type=tablename&order=columnname 对于代码,我执行以下操作: $query = "SELECT * from `" . $_GET["type"] ."` ";

我的数据库中有三个表,我正在构建一个API以JSON格式显示结果

我目前的API设置如下:

api.php?type=tablename
我只是:

$query = "SELECT * from `" . $_GET["type"] ."` ";
很简单。我还有一个订单类型:

api.php?type=tablename&order=columnname
对于代码,我执行以下操作:

$query = "SELECT * from `" . $_GET["type"] ."` ";
if(isset($_GET["order"]))
   $query .= "ORDER BY `" . $_GET["type"] . "`.`". $_GET["order"] ."` ASC";
现在这很好,但是我想扩展它,以便用户能够使用“select=columnname”专门选择他们想要的列

因此,我的问题是:

  • 在URL中进行多个选择的最佳方式是什么,例如api.php?type=tablename&select=this | that | something
我总是可以用这种方式分解字符串并构建查询?但这是最好的方法吗

  • 尽管到处都有“
    if-isset
    ”的解决方案会起作用,但对我来说,它会变得很混乱,而且如果我想在其中添加其他SQL语句,编辑起来也不容易
我看到了使用
%s
来实现这一点的建议,但是我一辈子都不知道该如何实现这一点

任何建议都很好,不需要做很多if语句


编辑:不必担心查询是否失败,我已经完成了。

当您在GET Method中收到参数时,请注意sql注入。是的,我可能只会在
|
上爆炸,并在loop@Sundar谢谢,有没有关于如何防止这种情况的建议?@JonathonHenderson:或者使用
,返回内爆,或者更好的
?type=tablename&select=this,that,something