如何构建动态SQL查询?(How do I build a dynamic SQL query?)

编程入门 行业动态 更新时间:2024-10-27 20:37:33
如何构建动态SQL查询?(How do I build a dynamic SQL query?)

是的,所以我的页面上有一组下拉菜单。 根据是否选择了值,我想将其添加到PHP中的SQL查询字符串。 例:

select1: options("*" "op1", "op2) select2: options("*" "op1", "op2) select3: options("*" "op1", "op2)

'*'指任何东西。 即不应该通过该查询选项过滤数据。 现在,如何快速简单地构建查询? 目前,我有这样的事情:

$query=''; $found=0; $op1=$_POST['select1']; $op2=$_POST['select2']; $op3=$_POST['select3']; if($op1!='*') { $found=1; $op1="'".$op1."'"; $query="WHERE op1=$op1 "; } if($op2!='*') {$op2="'".$op2."'"; if($found==1) { $query=$query. "AND op2=$op2 "; } else{ $found=1; $query="WHERE op2=$op2 "; } } if($op3!='*') {$op3="'".$op3."'"; if($found==1) { $query=$query. "AND op3=$op3 "; } else{ $found=1; $query="WHERE op3=$op3 "; } }

现在,显然,实施起来非常烦人。 有没有更简单的方法?

谢谢。

Right, so I have a set of dropdowns on my page. Depending on whether a value is selected, I want to add it to an SQL query string in PHP. Example:

select1: options("*" "op1", "op2) select2: options("*" "op1", "op2) select3: options("*" "op1", "op2)

'*' refers to anything. i.e the data should not be filtered by that query option. Now, how do I build the query for this quickly and simply? Currently, I have something like this:

$query=''; $found=0; $op1=$_POST['select1']; $op2=$_POST['select2']; $op3=$_POST['select3']; if($op1!='*') { $found=1; $op1="'".$op1."'"; $query="WHERE op1=$op1 "; } if($op2!='*') {$op2="'".$op2."'"; if($found==1) { $query=$query. "AND op2=$op2 "; } else{ $found=1; $query="WHERE op2=$op2 "; } } if($op3!='*') {$op3="'".$op3."'"; if($found==1) { $query=$query. "AND op3=$op3 "; } else{ $found=1; $query="WHERE op3=$op3 "; } }

Now, obviously, this is quite annoying to implement. Is there any easier method?

Thanks.

最满意答案

我可能会使用MyQueryBuilder类以下方法。

AddSelectionColumn(String ColumnName, string Alias) AddTableSource(String TableName, String Alias) AddTableJoin(String Table1, String Alias1, String Table2, String Alias2, String Col1, String Col2, JoinType Join) AddFilterCondition(String ColumnName, String Alias, String Condition)

它可以更好地控制代码......

I would have used a class MyQueryBuilder with following methods probably..

AddSelectionColumn(String ColumnName, string Alias) AddTableSource(String TableName, String Alias) AddTableJoin(String Table1, String Alias1, String Table2, String Alias2, String Col1, String Col2, JoinType Join) AddFilterCondition(String ColumnName, String Alias, String Condition)

It might give a better control on the code...

更多推荐

本文发布于:2023-07-05 15:53:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1039169.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:动态   SQL   build   dynamic   query

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!