2011-12-10 42 views
-1

如果我在也有COUNT的php SQL語句中使用變量,則會出現錯誤。如果使用文字數字而不是變量,它可以正常工作。在下面的代碼中,您可以看到我設置變量的位置。它被設置爲「test2」,下面的第一行代碼。在sql語句中使用變量的Mysql計數問題 - php

我在做什麼錯?

//$tag_text_ipb hardcoded here for testing  
$tag_text_ipb="test2"; 

//when I replace $tag_text_ipb with the literal 'test2' in SQL below, it works fine. 
$query_total_tags = "SELECT COUNT(1) FROM core_tags WHERE tag_meta_app = 'downloads' AND tag_text = $tag_text_ipb"; 

$dlresult_total_tags = mysql_query($query_total_tags); 

//Mysql reports an error here (see below for the error text) ONLY when I use the $tag_text_ipb variable in the SQL statement. 
$tag_count= mysql_result($dlresult_total_tags,$k[COUNT(1)]); 

的錯誤是: 警告:mysql_result():提供的參數不是一個有效的MySQL結果資源在/ home/ipboard /管理/ ...:eval()函數就行'd代碼3884

如果我在SQL語句中使用文字而不是$ tag_text_ipb,則此錯誤消失並且所有內容都可以正常工作。

+0

我是個白癡,忘了我不得不在SQL語句中的變量使用'。當變量的內容是一個數字時,我不會這麼做。 –

回答

2

你錯過了SQL中標記文本var周圍的引號。應該是這樣的:

$query_total_tags = "SELECT COUNT(1) FROM core_tags WHERE tag_meta_app = 'downloads' AND tag_text = '".$tag_text_ipb."'"; 
2
$query_total_tags = "SELECT COUNT(1) ... AND tag_text = '$tag_text_ipb'"; 
                 ^   ^ 

你需要引用的文本值,否則您的查詢將是畸形的。請仔細閱讀有關SQL注入的信息,並查看您是否可以使用綁定參數而不是原始查詢。

0

試試這個

$query_total_tags = "SELECT COUNT(1) FROM core_tags WHERE tag_meta_app = 'downloads' AND tag_text = '$tag_text_ipb'"; 

(約$ tag_text_ipb單qoutes)