2013-10-10 113 views
0

與MySQL的PHP​​ Select語句的問題腓Select語句的問題

我得到這個錯誤..

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/try/public_html/register.php on line 17 

我的代碼是

$siteAddress = trim($_POST['b_Address']); 

$sql="SELECT * FROM user WHERE siteAddress='$siteAddress';"; 

$result=mysql_query($sql); 
$count=mysql_num_rows($result); 

//check for address 

if($count) 
{ 
$errorMessage = "<p><font color=red size=4>Site Address " . $siteAddress . " is not available. </font></p>"; 
$proceed = "no"; 
} 

我嘗試回聲$ sql和我得到這個

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/try/public_html/register.php on line 17 
SELECT * FROM user WHERE siteAddress='myshop'; 

如果我輸入的SQL在phpMyAdmin的寄回東西..

 Showing rows 0 - 0 (1 total, Query took 0.0003 sec) 
+0

不,它不會返回任何東西。 – Mihai

+0

'echo mysql_error()'查看錯誤消息。 – Barmar

+0

它顯示我下面的1條記錄..哈哈:)得到記錄,但只是在PHP我不知道爲什麼得到這個錯誤,我只是想檢查,如果沒有記錄返回,然後顯示錯誤消息。 mysql_num_rows有什麼問題嗎? – user1777711

回答

1

結束時,你有兩個分號有

$sql="SELECT * FROM user WHERE siteAddress='$siteAddress';"; 

它應該是:

$sql="SELECT * FROM user WHERE siteAddress='" . $siteAddress ."'"; 

你也可以這樣做:

$sql= mysql_query("SELECT * FROM user WHERE siteAddress='" . $siteAddress ."'"); 
$count=mysql_num_rows($sql); 
0

試試這個:

$sql="SELECT * FROM user WHERE siteAddress='{$siteAddress}'"; 

大括號允許PHP的$ siteAddress變量的內容嵌入到字符串。另外,我不相信你需要;在SQL語句

+0

花括號在這裏不會有什麼區別(除了可能有助於可讀性)。 –

1

你可以使用mysql的count功能

$count=mysqli_fetch_assoc(mysqli_query($db,"SELECT count(*) as count FROM user WHERE siteAddress='$siteAddress'"))['count']; 

或分解

$query=mysqli_query($db,"SELECT count(*) as count FROM user WHERE siteAddress='$siteAddress'"); 
$result=mysqli_fetch_assoc($query); 
$count=$result['count']; 

爲MySQL是過時,任何人訪問此頁可能會從它仍然是可以接受的,使用安全的答案得到的印象是我使用的mysqli的例子。