2013-05-24 2 views
0

У меня возникают проблемы с использованием запроса UPDATE из функции MySQL в PHP. Я не делаю синтаксической ошибки, но просто не возвращаю строку (я повторяю строки результатов, и она всегда говорит 0). Мой код выглядит следующим образом:PHP MySQL UPDATE запрос не работает (строки не возвращаются)

mysql_query("UPDATE wecode.users SET activate = 1 WHERE username = '$username' AND password = '$password' AND email = '$email'", $connection) 
or die ("Troubles activating the account ".mysql_error()); 
return mysql_affected_rows(); 

Я пытался ставить один и тот же запрос (с использованием значений фактического столбца) в моем Workbench, и она отлично работает (по крайней мере, запрос возврата 1 результат строки). Итак, любое представление о том, в чем проблема?

+0

Если это новое приложение, вы не должны использовать 'mysql_query', и вы должны [надлежащим образом убежать] (http://bobby-tables.com/) все значения. – tadman

+1

Сделайте некоторые отладки. Назначьте свой оператор UPDATE переменной first '$ sql =" UPDATE ... ";' then echo it 'echo $ sql'. И покажи нам, что у тебя есть. – peterm

+3

Если вы установили столбец в значение, которое оно уже имеет, то считается, что пострадали 0 строк. Поэтому убедитесь, что вы обновляете строку, у которой еще нет 'activate = 1'. – Barmar

ответ

1

Не используйте mysql_affected_rows, чтобы указать, что пользователь активировал этот запрос.

Он будет возвращать 0, если пользователь не существует или пользователь уже активирован (activate = 1).

PHP Manual - mysql_affected_rows:

При использовании UPDATE, MySQL не будет обновлять столбцы, где новое значение такое же, как старое значение. Это создает вероятность того, что mysql_affected_rows() может фактически не равняться количеству строк , а только количеству строк, которые были буквально затронуты запросом .

+0

Вы правы. Вы и Бармен правы. Я пытался обновить значение столбца с тем же значением, поэтому функция mysql_affected_rows вернула 0. Большое вам спасибо. И спасибо всем вам за ответ. – Jerome

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