Forum Webscript.Ru

Общие => Базы данных => Тема начата: Antoha от 03 Февраля 2003, 10:28:30

Название: Проверка на существование записи в базе
Отправлено: Antoha от 03 Февраля 2003, 10:28:30
Люди помогите, понимаю как сделать, но на практике не могу осуществить.

Тема такая надо на php сделать запрос к базе и проверить есть ли в этой базе e-mail, который мне нужен.

Делаю так:

1. $query="SELECT email from table WHERE email=\'vasi@mail.ru\'";

2. А вот тут то и торможусь, может есть какая функция которая анализит результат запроса и выдает TRUE, если запрос не содержит ни одной записи.
Название: Проверка на существование записи в базе
Отправлено: Metaller от 03 Февраля 2003, 10:59:40
Сделай так
SELECT COUNT(email) as cnt FROM table WHERE email=\'vasi@mail.ru\'

а потом проверяй - если cnt=0 - записей нет.
Название: Проверка на существование записи в базе
Отправлено: Alexandr от 03 Февраля 2003, 11:23:40
Можно это поле объявить UNIQUE, и делать сразу инсерт, а потом if (mysql_errno()==1062) ...
Название: Проверка на существование записи в базе
Отправлено: Antoha от 03 Февраля 2003, 11:25:26
Оба способа понятны, спасибо. Но все таки посоветуйте на собственном опыте, какой лучше?
Название: Проверка на существование записи в базе
Отправлено: Metaller от 03 Февраля 2003, 11:33:23
Способ Alexandr\'а, видимо, будет быстрее, т.к. не нужно делать лишний запрос.
Название: Проверка на существование записи в базе
Отправлено: Yukko от 03 Февраля 2003, 12:17:46
Цитировать
Способ Alexandr\'а, видимо, будет быстрее, т.к. не нужно делать лишний запрос.
надо проверить есть ли в базе такое мыло или нет, а не вносить его в базу (тем более, что еще надо дополнительно делать
Цитировать
UNIQUE
)
Название: Проверка на существование записи в базе
Отправлено: Metaller от 03 Февраля 2003, 12:48:14
Yukko
Ну, это если не нужно потом инсертить.
Название: Проверка на существование записи в базе
Отправлено: Alexandr от 03 Февраля 2003, 15:07:32
Цитировать
а не вносить его в базу

Редко бывает нужно просто узнать.
Название: Проверка на существование записи в базе
Отправлено: Maniac от 03 Февраля 2003, 22:02:55
Возвращаясь к истокам и вопросу, заданному в первую очередь.
Цитировать
какая функция которая анализит результат запроса

Есть. mysql_num_rows() называется
Название: Проверка на существование записи в базе
Отправлено: Metaller от 04 Февраля 2003, 09:53:11
Цитировать
mysql_num_rows

Но SELECT COUNT быстрее, AFAIK..
Название: Проверка на существование записи в базе
Отправлено: Maniac от 04 Февраля 2003, 16:21:55
Цитировать
быстрее

Никто и не спорит :) Просто ему была нужна
Цитировать
функция которая анализит результат запроса и выдает TRUE, если запрос не содержит ни одной записи

IMHO, mysql_num_rows() - то, что ему было надо :)
Название: Проверка на существование записи в базе
Отправлено: Metaller от 04 Февраля 2003, 16:25:53
Цитировать
mysql_num_rows() - то, что ему было надо

Не-а.. она выдаст FALSE :D

Ладно, это бессмысленный спор.. завязываем флейм разводить :)