PHP / MYSQL дублирующий адрес электронной почты - PullRequest
0 голосов
/ 16 января 2011

Я пытаюсь запретить пользователям на сайте, на котором я работаю, дублировать адреса электронной почты.Я использую этот метод:

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 

Пользователь не может создать учетную запись с любым адресом электронной почты.Почему код не передает управление блоку if, если количество строк больше 0?

Ответы [ 2 ]

2 голосов
/ 16 января 2011

Попробуйте это:

SELECT * FROM ... (обратите внимание на звездочку после SELECT) .. Я не думаю, что вы вызываете какие-либо записи (кроме 1-й записи в Users) по тому, как вы их запускаете. Я могу ошибаться, но в любом случае дать ему шанс.

0 голосов
/ 16 января 2011

похоже, что вы никогда не получите совпадения по электронной почте. Итак

mysql_num_rows( $result ) == 0 

всегда будет правдой.

попробовать

echo $sql

, чтобы убедиться, что ваш SQL выглядит правильно. Возможно, вы неправильно передаете $ emlAd в createUser ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...