使用每个部分的动态数据集设置mysql查询

时间:2013-07-27 14:41:45

标签: php mysql mysqli mysql-real-escape-string

好的,所以我的主要问题是在WHERE和ORDER BY,LIMIT等之间的任何事情。

我目前的设置如下:

SELECT " . $column_string . " FROM " . $table_name . " " . $query_join . " " . $where . " " . $query_end . " " . $query_limit

我的问题是这个,我设置了使用转义字符串检查每个变量,但是当你来到$ query_end时,它会保持test ='1'和test2 ='2'等。我有那个部分设置允许你一次性发送整个字符串。但是当然如果你检查它变成了test = \'1 \'和test2 = \'2 \'。

我唯一想到的就是把它分成一些像[test2 =],[2]这样的奇怪数组,但这对于(test1 ='2'或test2 ='3')不起作用,尽管我可以让它工作我真的不想这样做。

有人能建议更好地解决上述问题吗?另外还有一个项目用于检查mysql-real-escape-string之外的注入?

这个设置的全部原因是允许我使用json通过ajax发送多个查询,然后将所有数据发送回3级数组。

1 个答案:

答案 0 :(得分:1)

“怪异”阵列实际上没有错。

每个自定义搜索解决方案都基于类似的方法 - 动态组装WHERE子句的一系列条件 我不知道,为什么你需要一个用户设置的字段集或表。但这个想法会完全一样。只是不要忘记根据硬编码的白名单验证所有标识符和运算符。