0

在我的代码中,我试图通过网页接受来自用户的输入,并通过基于用户输入动态创建 where 子句来创建 SQL 查询。但是,看起来我无法正确连接字符串。

$whereclause .= "AND niche ='".$niche."'";

$result = mysql_query("SELECT * FROM merc WHERE 1 = 1".$whereclause."") or die('Could not connect: ' . mysql_error());
4

2 回答 2

1

您应该在编写查询时避免 SQL 注入条件,并使用mysqliPDO_mysql而不是 mysql。

尝试以下查询:

$result = mysql_query("SELECT * FROM merc WHERE 1 = 1 ".$whereclause."") or die('Could not connect: ' . mysql_error());

您的查询中缺少空格。

于 2013-10-16T17:05:15.513 回答
0

缺少一个空格。

$whereclause = "AND niche = '".mysqli_real_escape_string($niche)."'";
$result = mysqli_query("SELECT * FROM merc WHERE 1 = 1 ".$whereclause") or die('Could not connect: ' . mysqli_error());

确保在从用户那里获取输入时,它不会被无干扰地传递给 MySQL。否则会导致应用程序出现大量问题,尤其是 SQL 注入。此外, mysql_* 函数已被弃用。强烈建议迁移到 mysqli_*。

于 2013-10-16T16:39:12.243 回答