2012-01-30 107 views
3

假設數據庫連接良好,表名和列名正確,並且數據庫中實際存在一行,其值爲「advoom.com」。是什麼讓這一切無法工作?我在'where子句'中收到錯誤「未知列'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()); 

回答

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()); 

並且如果需要的話不要忘記逃避你的輸入。

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不存在,這就是爲什麼你會得到這個錯誤。

+10

+1很好的解釋+1 mysql_real_escape_string – 2012-02-03 01:58:44

0

您需要在和之前添加Single Quote之後的變量。在PHP

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

感謝您的意見。我很好走... – 2012-02-02 23:22:30

0

沒有concactenation的simpliest解決方案試試這個:

$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()); 
相關問題