我正在尝试阻止我正在处理的网站上的用户拥有重复的电子邮件地址。这是我正在使用的方法:
function createUser( $emlAd )
{
$sql = "SELECT FROM Users WHERE email='$emlAd'" ;
$result = mysql_query( $sql ) ;
if( mysql_num_rows( $result ) > 0 )
{
die( "There is already a user with that email!" ) ;
}//end if
//rest of function
}//end createUser
此代码无法完成其任务,用户仍然可以使用已使用的电子邮件创建帐户。奇怪的是,当我将if条件更改为:
mysql_num_rows( $result ) == 0
用户无法使用任何电子邮件地址创建帐户。当行数大于0时,为什么代码不将控制传递给if块?
答案 0 :(得分:2)
试试这个:
SELECT * FROM ...(请注意SELECT之后的星号)..我不认为您通过运行它的方式调用任何记录(用户中的第一条记录除外)。我可能错了,但无论如何都要试一试。
答案 1 :(得分:0)
看起来你永远不会在电子邮件上获得匹配。所以
mysql_num_rows( $result ) == 0
永远是真的。
试
echo $sql
确保您的SQL看起来正确。您可能无法正确地将$ emlAd传递给createUser()