在PHP / MySQL中比较变量字符串相等性的最佳方法是什么?
|
我正在尝试检查通过URL传递的字符串,并从与该字符串匹配的MySQL数据库获取所有结果。
我根据输入发送不同的查询,但是有问题的查询基本上是这样的(实际上要长得多):
if ($projectsname) {$result = mysql_query(\"SELECT item FROM items WHERE projectname=$projectsname\",$db)}
问题是$ projectsname是一个字符串。我所有其他查询都返回一个整数,并且工作正常。但是在这种情况下,除非在引号中加上引号,否则我无法在实际的PHP代码中得到正确的结果,这就是我的做法:
$projectsname = (isset($_GET[\'projectname\']) && !empty($_GET[\'projectname\'])) ? \'\"\'. $_GET[\'projectname\'] .\'\"\' : 0;
...将引号附加到创建变量的数据上。那行得通。在我看来这是错误的。
有没有更好的方法进行比较?
(我希望我可以说这是一个新手问题,但这是我多年来尝试进行编码的设计师经常遇到的麻烦。)
如果您比我在这里使用的术语更好,请随时编辑问题(让我知道您的编辑是什么,我很难措辞。)
没有找到相关结果
已邀请:
3 个回复
踩什不
您需要引用传递给mysql的字符串。
慷祈霖黑
查看您实际发送的查询。 还应阅读有关ѭ4和SQL注入的一般信息。考虑下面的示例,您的代码容易发生非常典型的SQL注入:
期差骇蓟