我正在尝试检查通过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;


...将引号附加到创建变量的数据上。那行得通。在我看来这是错误的。

有没有更好的方法进行比较?

(我希望我可以说这是一个新手问题,但这是我多年来尝试编码的设计师经常遇到的麻烦。)

如果您所掌握的术语比我在这里使用的术语更好,请随时编辑问题(让我知道您的编辑是什么,我很难对问题进行措辞。)

最佳答案

if ($projectsname) {$result = mysql_query("SELECT item FROM items WHERE projectname='$projectsname'",$db)}


您需要引用传递给mysql的字符串。

07-24 20:10