Forum Webscript.Ru

Общие => Базы данных => Тема начата: sense от 21 Февраля 2003, 12:14:36

Название: LOCK TABLES не лочит :(
Отправлено: sense от 21 Февраля 2003, 12:14:36
Помогите разобраться (MySQL и PHP)

Лочу таблицу, пишу в неё ххх, жду, снова пишу уууу, анлочу.
В тоже время другим скриптом пишу zzz.

В результате порядок записей
xxx
zzz
yyy

LOCK TABLES locks tables for the current thread
Может у меня все три INSERT\'а - разные потоки?

Что считать потоком, если из PHP с базой работаю?

Или подскажите, где я тупой.
Название: LOCK TABLES не лочит :(
Отправлено: fidget от 21 Февраля 2003, 12:49:04
порядок записей еще ни о чем не говорит.
После того как вставил запись \'zzz\' проверь первым скриптом какие записи оно тебе выводит, т.е. только \'xxx\' или еще и \'zzz\'.
Название: LOCK TABLES не лочит :(
Отправлено: sense от 21 Февраля 2003, 17:18:54
Лочу. Вставляю в цикле (номер=0 to 100) записи "номер+ууу". Анлочу.
Параллельно другим скриптом вставляю zzz и читаю всю таблицу.

.......
136  32+yyy  2003-02-21 21:03:40  
137  zzzz  2003-02-21 21:03:40  
138  33+yyy  2003-02-21 21:03:40  
......

        $find="yyy";
        $sq="LOCK TABLES person WRITE";
        $result = mysql_query($sq, $mlink);

        for ($i=0;$i<100;$i++)
        {
            $sq="INSERT INTO person (str, instime) VALUES (\'$i+$find\', now())";
            $result = mysql_query($sq, $mlink);
        }

        $sq="UNLOCK TABLES";
        $result = mysql_query($sq, $mlink);


Ткните пальцем, где что неправильно.
Название: LOCK TABLES не лочит :(
Отправлено: fidget от 21 Февраля 2003, 19:33:38
какая версия MySQL сервера?
Название: LOCK TABLES не лочит :(
Отправлено: sense от 22 Февраля 2003, 13:01:44
3.21.29a-gamma-debug
Название: LOCK TABLES не лочит :(
Отправлено: fidget от 22 Февраля 2003, 14:30:37
> 3.21.29a-gamma-debug

ну тогда все понятно :-)
щас вообще-то стэйбл 3.23.55, да и 4.0 уже несколько месяцев как гамма ...

в общем настоятельно рекоммендую обновить, а потом тестировать и проверять :-)
Название: LOCK TABLES не лочит :(
Отправлено: sense от 23 Февраля 2003, 10:12:41
Цитировать
в общем настоятельно рекоммендую обновить, а потом тестировать и проверять :-)

Я б вообще весь интернет по обновил и по другому сделал, кабы он мне принадлежал :-(

Не всегда скрипты пишутся для тех серверов, на которых можно всё что угодно обновлять, иногда кроме урезанного ФТП ничего не имеешь из прав.

Впрочем задача уже решена совершенно другим путём, без LOCK TABLES.

FIDGET:
Огромное спасибо за внимание к моему вопросу, кроме тебя никто не откликнулся даже.

Перед закрытием темы кинь пример работающего LOCK TABLES под 3.23.55
Название: LOCK TABLES не лочит :(
Отправлено: fidget от 25 Февраля 2003, 00:28:14
> Не всегда скрипты пишутся для тех серверов, на которых можно всё что угодно обновлять, иногда кроме урезанного ФТП ничего не имеешь из прав.

дело в том, что та версия, которую ты привел ой-ой-ой как устарела. С тех пор было пофиксено неимоверное количество баг в том числе и по секьюрности, не говоря уже о функциональности, потому и рекомендую проапгрейдить. Если сам не можешь - то у тебя есть шанс повлиять на других :)

> Перед закрытием темы кинь пример работающего LOCK TABLES под 3.23.55

ок, кину, только попозже, когла появлюсь на работе :-)