2013-04-09 4 views
0

У меня есть этот SQL-кодSQL имеет значение верно, когда он не должен

$passwordQuery = mysql_query("UPDATE `Medarbejder` SET `password` = '$password' WHERE `login` = '$login' AND `password` = '$oldPassword'")or die(mysql_error()); 
      if($passwordQuery){ 

И не важно, если $ OldPassword равно password или нет, то истинно, что довольно раздражает, и я не могу понять Зачем.

ответ

1

Если вы хотите проверить количество пораженных строк, вы можете использовать mysql_affected_rows в своем PHP-коде.

For Reference

+0

Да, это исправлено, спасибо большое :) –

0

Возможно, я ошибаюсь, но ваше обновление не подведет, даже если нет записи, он ничего не обновит! :-)

+0

Ладно спасибо :) вы знаете, как на самом деле проверить, если он обновляет что-то тогда? :) –

2

Я думаю, mysql_query вернет TRUE независимо от того, обновляет ли он строку или нет. Она возвращает только FALSE в случае ошибки согласно инструкции сказал

Для других типов операторов SQL, INSERT, UPDATE, DELETE, DROP и т.д., mysql_query() возвращает значение TRUE в случае успешного завершения или FALSE в случае ошибки.

Я думаю, что вы хотите, проверка счетчика обновлений, а также - в дополнение к ошибкам проверки

+0

О, ладно .. derp, спасибо :) попробует просто быстро :) Знаете ли вы, как проверить, действительно ли он обновляется? –

0

сделать это так

$passwordQuery = mysql_query("UPDATE `Medarbejder` SET `password` = '$password' WHERE `login` = '$login' AND `password` = '$oldPassword'")or die(mysql_error()); 
     if(mysql_affected_rows()==0){ 
     //alternative to false return of query 
     } 
     else if(mysql_affected_rows()>0){ 
     //alternative to true return of query 
     } 
+0

'mysql_affected_rows()' используется для возврата количества строк, измененных из-за недавно обработанного запроса в текущей функции или блоке обработки. Если пароль и/или имя пользователя не равны, то эта функция вернет 0 else любое число, большее 0. –

Смежные вопросы