2011-05-26 30 views
0
include('includes/config.php'); 

$sqld = mysql_query("SELECT * FROM users WHERE email='[email protected]' AND password='google'"); 
$num= mysql_num_rows($sqld); 
echo $num; 

這個腳本不能正常工作,並顯示該錯誤; -MySQL的函數問題

警告:mysql_num_rows()預計參數1是資源,布爾在d給出:\ WAMP \ WWW \ test.php的上第12行

+0

您的查詢沒有返回任何數據。將'OR die(mysql_error());'添加到查詢行的末尾,以便您可以看到發生了什麼問題。 – 2011-05-26 16:41:00

+0

可以將'mysql_query'行改爲:'$ sqld = mysql_query(「SELECT * FROM users WHERE email='[email protected]'AND password ='google'」)或者die('error:'.mysql_error()) ;'和後期輸出? – Xaerxess 2011-05-26 16:43:49

回答

2

mysql_query由於查詢中存在某種錯誤而返回false。使用mysql_error可以得到你上次報告的錯誤。

2

mysql_query失敗時返回false。當你調用mysql_query時,你有沒有與db的有效連接?

您需要啓動的東西,如:

$link = mysql_connect("localhost", "mysql_user", "mysql_password") 
or die("Connection attempt failed : " . mysql_error()); 

然後你可以使用的mysql_query。

0

當調用MySQL(和其他引擎)時,「@」符號通常是一個參數的指示符,所以它期望一個參數名稱適用於變量「gmail」並且窒息。

您應該參數化您的查詢...

+0

Doens't問題,@「變量」是在一個單引號字符串中,所以它不被視爲變量。它只是字符串中的另一個字符。試試'select @x:='hi';選擇'@x there';'看看你得到了什麼 – 2011-05-26 16:56:51

+0

@Chamara Denipitiya,@Marc B,你可能是對的,因爲我沒有明確地處理PHP ...但是,Chamara利用參數化無論如何查詢以防止SQL注入。 – DRapp 2011-05-26 17:10:15