正在创建动态SQL搜索


Creating a dynamic SQL Search

面对一个小问题,我似乎无法解决。

我正在尝试构建一个动态SQL查询,以返回来自120个不同行的详细搜索。

所以我从标准开始查询

"SELECT * FROM table name" 

然后我想添加到多个

"WHERE xxxx = '$xx'"

如果我使用Var作为搜索词将其全部输入到一个查询中,则我的搜索工作非常好,因此

"SELECT * FROM table name WHERE xxxx = '$xx'"

我可以毫无问题地得到结果,但只要我把最后一点分开,它就拒绝显示结果。我设置了

if (!result){
$echo "bad request";
}

如果!结果,这就是每一次所显示的。所以我不知道如何分割尾部,并且仍然可以成功查询。如果它帮助我当前失败的搜索查询看起来像这个

 $result = mysqli_query($connect,"SELECT * FROM table name " + "$g2query");

非常感谢各位。

还有。。我知道安全实践仍有待实施,但在添加其他内容之前,我宁愿让搜索工作正常。

谢谢大家。

加号用于加法,而不是连接字符串。使用句点而不是加号。

只要确保如果第二部分没有任何内容,则将其设置为空字符串。

if(empty($g2query)) $g2query = "";
$result = mysqli_query($connect,"SELECT * FROM table name " . "$g2query");;

很明显,你只是在学习,但在这个网站上回答SQL问题时,不可能没有人对SQL注入说些什么。。所以我就把这个留在这里。。

在您的代码$result = mysqli_query($connect,"SELECT * FROM table name " + "$g2query");

"SELECT * FROM table name " + "$g2query"将计算为0,因为与许多其他编程语言不同,点(.)用于字符串串联,而不是+

使用"SELECT * FROM table name " . "$g2query"

还有很多其他的事情需要考虑,增加条件和安全措施,但这就是你的问题的答案。