2013-10-10 73 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的例子。