这个简单的小“选择”语句.....为什么不起作用?

时间:2012-01-30 23:45:39

标签: php mysql select

假设数据库连接正常,表名和列名正确,并且数据库中实际上有一行,其中包含值“advoom.com”。什么阻止这种工作?我在“where子句”中收到错误“Unknown column'advoom.com'”

我也尝试将变量放在引号之外并使用“。”连接命令。同样的错误。

这是在Dreamweaver中编写的PHP页面的片段。

$ pageURL =“advoom.com”;

mysql_select_db($database_bizCon, $bizCon);

$query_Recordset1 = "SELECT * FROM buttonprefsNEW WHERE curl = $pageURL";
$Recordset1 = mysql_query($query_Recordset1, $bizCon) or die(mysql_error());

4 个答案:

答案 0 :(得分:13)

使用此:

mysql_select_db($database_bizCon, $bizCon);

$pageURL = mysql_real_escape_string($pageURL);
$query_Recordset1 = "SELECT * FROM buttonprefsNEW WHERE curl = '" . $pageURL . "'";
$Recordset1 = mysql_query($query_Recordset1, $bizCon) or die(mysql_error());

在这种情况下,你只需要单引号来匹配它。

在这种情况下,字符串$pageURL将用作列而不是字符串。因此,您希望选择列advoom.com等于列curl的所有行。现在,列advoom.com不存在,这就是您收到此错误的原因。

答案 1 :(得分:2)

你需要在sql中用引号括起一个字符串。

$pageURL = "advoom.com";
mysql_select_db($database_bizCon, $bizCon);
$query_Recordset1 = "SELECT * FROM `buttonprefsNEW` WHERE `curl` = '".$pageURL."'";
$Recordset1 = mysql_query($query_Recordset1, $bizCon) or die(mysql_error());

如果需要,不要忘记逃避输入。

答案 2 :(得分:0)

您需要在之前添加Single Quote ,在之后添加。 PHP中没有concactenation的最简单的解决方案

$query_Recordset1 = "SELECT * FROM buttonprefsNEW WHERE curl = '$pageURL'";

答案 3 :(得分:0)

试试这个:

$url = "http://example.com";
mysql_select_db($database_bizCon, $bizCon);
$query_Recordset1 = "SELECT * FROM `buttonprefsNEW` WHERE `curl` = '".$url ."'";
$Recordset1 = mysql_query($query_Recordset1, $bizCon) or die(mysql_error());