Forum Webscript.Ru

Программирование => PHP => Тема начата: alesh от 08 Июля 2002, 14:15:42

Название: file_exists
Отправлено: alesh от 08 Июля 2002, 14:15:42
В php есть отличная функция file_exists , которая проверяет существование файла.
А можно как-то проверять существование записи в mysql и получать на это вразумительный ответ ?
Название: file_exists
Отправлено: Alexandr от 08 Июля 2002, 14:27:53
Какой записи?
Если, например, надо проверить есть ли данный URL в базе, то делаешь следующее:
mysql_query("SELECT id FROM top WHERE url=\'$url\' LIMIT 1");
if (mysql_num_rows==1) echo "Стоп!!! Такой URL уже есть!";
else mysql_query("INSERT INTO top VALUES (NULL, $url)");
Название: file_exists
Отправлено: AlieN от 08 Июля 2002, 14:44:47
Alexandr

$result=mysql_query("SELECT id FROM top WHERE url=\'$url\' LIMIT 1");
if (mysql_num_rows($result)==1) echo "Стоп!!! Такой URL уже есть!";
else mysql_query("INSERT INTO top VALUES (NULL, $url)");


Может всё-таки вот так?
Название: file_exists
Отправлено: Alexandr от 08 Июля 2002, 15:27:19
AlieN
Цитировать
Может всё-таки вот так?

Точно!!!
Название: file_exists
Отправлено: Covex от 08 Июля 2002, 18:51:40
а что нельзя поле урл Unique сделать? При попытке инсерта  ужо существующего урла еррор будет.....
Цитировать
url=\'$url\' LIMIT 1

зачем лимит делать и mysql_num_rows($result)==1,  в принципе ведь если урлы уникальны то mysql_num_rows($result) либо ноль либо 1.
Название: file_exists
Отправлено: Covex от 08 Июля 2002, 18:56:06
а вообще про это в Forum Webscript.Ru > Общие > Базы данных  писать лучше
Название: file_exists
Отправлено: GotZfild от 08 Июля 2002, 19:57:05
Covex
А при чем здесь инсерт? Проверка существования записи может быть необходима не только при вставки записи.
Название: file_exists
Отправлено: alesh от 08 Июля 2002, 23:40:24
Ну, insert это так, пример.
Название: file_exists
Отправлено: Alexandr от 09 Июля 2002, 07:51:04
Covex
Цитировать
зачем лимит делать

В этом-то вся и фишка, что если у тебя база 200\'000 записей, то зачем её всю просматривать, если тебе достаточно найти одну запись, чтобы убедиться в не уникальности.
Цитировать
а что нельзя поле урл Unique сделать

А эта мысля мне оч понравилась.
Ща пойду рейтинг оптимизить.