Андрей Д.
1267 сообщений
#17 лет назад
Цитата ("alibek"):
Ерунда, нельзя дропнуть активную базу данных.
Хотя от MySQL всего можно ожидать.


Проверил на локалхосте, дропает базу и удаляет все таблицы. Мб это из-за пхпмайадмина, но думаю это вполне возможно. Главное условие вставки не давать зацыкленным, чтобы во время удаления не было добавлений записей
Николай М.
1895 сообщений
#17 лет назад
Добавлю немного уважаемого Zionit, с его позволения)

Чтобы такое условие всегда гарантировано выполнялось надо юзать транзакции, на пальцах это не обьяснить но если по кароче, то надо формировать специльный запрос, где он начинается со слов: open transaction , и заканчивается на close transaction, в синтаксисе конечно могу заблуждатся, непомню точно как, потому что юзаю хранимки, а они всегда выполняются в транзакции, и парится по этому поводу ненадо, все что выполняется между этими операторами выполняется пока не выполнится до конца не даст другим запросам работать паралельно, хорошо развит механизм блокировки транзакций только в MSSQL и Oracle, как он реализован в мускуле чтото даже и не помню) Кстати ещё один повод выбросить глупую затею юзать СУБД с прямими запросами, жаль что в ПХП все так плохо по этому поводу)

П.С. Эх... когда уже добавят поддержку хранимок в ПХП,... глаза режет(((
Андрей Д.
1267 сообщений
#17 лет назад
Да у меня вообще было подозрение, что возможно зацыклить и без транзакций))) Это обычная теория, её нужно равивать... ничего не проверял и не гарантирую...

SHOW TABLES WHERE (DROP TABLE `Tables_in_имя базы`);
Андрей Д.
1267 сообщений
#17 лет назад
Не, не работает

Пример процедуры:
CREATE PROCEDURE dowhile()
BEGIN
DECLARE v1 INT DEFAULT 5;


WHILE v1 > 0 DO


...


SET v1 = v1 - 1;
END WHILE;
END


Я уверен, что с полными правами можно натворить много чудес с базой. У себя на сервере прав скриптам даю минимум, чтобы даже если и будет скл инжекшн, то максимум - забивание таблиц мусором\кража данных, а не удаление таблиц или баз целяком...
Вадим С.
49 сообщений
#17 лет назад
Zionit
--
#
/**/
Анатолий Поляков
22 сообщения
#17 лет назад
Цитата ("voral"):
Мдааа суровый код......
Вообще говоря если закрыть глаза на прочие ошибки и ответить только на вопрос выдвинутый в тему. Есть очень полезная функция mysql_error()...... Она может много чего интересного рассказать....


Функция mysql_error() вернет отсутствие ошибки, так как синтаксической ошибки нету. Единственное что id действительно не долетает.

Думаю если сделать

$id=stripslashes($_REQUEST);
то должно заработать

А так запрос выглядит подобным образом : UPDATE запрос WHERE id=0

А скорее всего поля с id=0 нету или оно его обновило а ті сморишь свой айди
Александр В.
276 сообщений
#17 лет назад
Цитата ("AVD_studio"):

Функция mysql_error() вернет отсутствие ошибки, так как синтаксической ошибки нету. Единственное что id действительно не долетает.


Хм. Ну так не mysql_error() единой жив программист. Если происходит лабуда с запросами надо все выводить на экран для анализа:

$query="........";
mysql_query($query);
print "$query<br>".mysql_error();

все урезано, но смысл я думаю ясен....
А иначе можно много времени в пустую убить, сделал в первую очередь это, а там уж танцуешь. По крайней мере бы автору темы уже не пришлось бы стоздавать ее с таким заголовком. Не так ли?
Андрей Д.
1267 сообщений
#17 лет назад
Цитата ("Vadyacorp"):
Zionit
--
#
/**/

насколько помню мой вариант тоже работает
Андрей Д.
1267 сообщений
#17 лет назад
Цитата ("AVD_studio"):

$id=stripslashes($_REQUEST);

$id=(int) $_REQUEST;


if(!mysql_query(....)) 
{
.....mysql_error()....
}
elseif(mysql_affected_rows() < 1) exit("Изменения не произведены, записи с ID = {$id} не существует");
else
{
echo "OK";
}
Анатолий Поляков
22 сообщения
#17 лет назад
Voral - Выводить в экран запрос - 99% нахождения ошибки сразу.
Это конечно правда.
Андрей Д.
1267 сообщений
#17 лет назад
Цитата ("AVD_studio"):
Voral - Выводить в экран запрос - 99% нахождения ошибки сразу.
Это конечно правда.

Написать собственный обработчик ошибок для запросов это тоже круто
Евгений З.
73 сообщения
#17 лет назад
Ого! Большой топик! Спасибо ребята, я исправил ошибку но ржал долго пока до конца дочитал
Александр В.
276 сообщений
#17 лет назад
Цитата ("ezdorov"):
Спасибо ребята, я исправил ошибку но ржал долго пока до конца дочитал

Интересно по какому поводу....
Евгений З.
73 сообщения
#17 лет назад
Искал то место что вызвало у меня улыбку но не могу найти, voral тебя интересует юмор? Я могу дать пару ссылок
Андрей Д.
1267 сообщений
#17 лет назад
Интересует как можно смеяться с людей, которые Вам пытаються помочь... Больше помогать желания нету...
Александр В.
276 сообщений
#17 лет назад
Цитата ("Zionit"):
Интересует как можно смеяться с людей, которые Вам пытаються помочь...

Во во и я про то. Тем более при таком уровне изначального вопроса