面对一个小问题,我似乎无法解决。
我正在尝试构建一个动态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"
还有很多其他的事情需要考虑,增加条件和安全措施,但这就是你的问题的答案。