Запрос UPDATE в Mysql

lbv

Guest
Запрос UPDATE в Mysql

Такая проблема:
Нужно проверить удачно ли прошла команда UPDATE.
При использовании функции mysql_affected_rows() таким образом:

if(mysql_affected_rows()!==1)
{
//Что-то делаем
}

будет возвращаться количество изменений с начала соединения с базой?
Или только количество изменений с последнего запроса?

Т.е. как мне узнать была ли проведена именно эта операция?

И еще... если при запросе UPDATE поле содержится такое же значение(тоже, которые мы хотим занести),
то функция возвращает 0. То есть как бы ничего менять и не надо.
Как в этом случае определить удачно ли прошел запрос или нет!?

:)
 

Сергей123

Новичок
"Выполненость" запроса узнаётся с пом. mysql_query.
Кол-во реально затронутых последним для этого соединения INSERT/UPDATE/DELETE - с пом. mysql_affected_rows.
Чего не достаёт?
 

lbv

Guest
Originally posted by Бресь Сергей
"Выполненость" запроса узнаётся с пом. mysql_query.
Кол-во реально затронутых последним для этого соединения INSERT/UPDATE/DELETE - с пом. mysql_affected_rows.
Чего не достаёт?
Читай со строчки "И еще..."
 

Сергей123

Новичок
Я читал. Поведение ф-ии описано верно. Что узнать-то нужно? Что значит "удачно ли прошел запрос или нет"? mysql_query не FALSE - значит удачно. Поясни что нужно...
 

Фанат

oncle terrible
Команда форума
azamat
я поясню тебе на примере.
вот, представь, бухал ты с друзьями в подъезде.
И послали тебя за еще одной.
А ты до магазина не дошел - упал и заснул в канаве.
Это значит - запрос прошел неудачно.

А мог и дойти, но водки там не оказалось.
Это значит, что, хоть водки и нету, но запрос прошел удачно.

Разницу улавливаешь? водки все ранво ноль, но в первом случае запрос был неудачным, а во втором - удачным.
 

Фанат

oncle terrible
Команда форума
Значит, оставь базы данных, и возвращайся в подъезд
 

lbv

Guest
Originally posted by Фанат
Значит, оставь базы данных, и возвращайся в подъезд
:D
... Осталось ответить

-~{}~ 23.11.04 17:23:

Допустим есть запрос:

$connect_sql= "UPDATE `user` SET sex='$sex' WHERE id='$id' ";

if(!mysql_query($connect_sql))
{

}

Что вернет функция mysql_query($connect_sql) если такого id нет? Правильно... TRUE.

Что вернет функция mysql_affected_rows(), если поле sex уже содержит значение $sex? Правильно... 0.

Вот и вопрос как узнать прошел ли у нас запрос(т.е. был ли найдет такой id или нет).

Это можно организовать одним запросом или нет?
 

Сергей123

Новичок
lbv
можно. SELECTом.

-~{}~ 23.11.04 16:33:

Вообще, похоже, он у тебя и так должен быть (какая-нибудь проверка "сверху", существует ли такой user), нет?
 

lbv

Guest
Originally posted by Бресь Сергей
lbv
можно. SELECTом.

-~{}~ 23.11.04 16:33:

Вообще, похоже, он у тебя и так должен быть (какая-нибудь проверка "сверху", существует ли такой user), нет?
Всем спасибо, все свободны :)
 
Сверху