Zolinger
Постоялец
- Регистрация
- 29 Сен 2008
- Сообщения
- 111
- Реакции
- 69
- Автор темы
- #1
В процессе написания модификаций и откладки новых запросов для Shop-script-а столкнулся с цельной проблемкой...
Контроль выполнения запросов к БД.
Много времени отнимали поиск и устранение непонимания базы чего от неё хотят.
Дэбаггер для Shop-script-а прикрутить не получилось, поэтому потребовалось иметь логи всех запросов к БД, т.к. часто все работает, а условие, например, не выполняется.
Перерыв массу данных по форумам нашел следующее решение.
В Mysql есть утилита mysqld.exe. Запуск её с нужными параметрами решает нашу задачку.
Для этого в файл Z:\denwer\scripts\init.d\mysql.pl нужно добавить всего одну строчку:
"--log=C:/localhost.log",
в данном куске кода:
Результат: в корне диска "C:\" будет создан лог-файл localhost.log всех запросов к Mysql-базе Дэнвера.
(путь к файлу ессно можно прописывать любой. )
В файле сразу видно, что именно Шоп "спрашивает" у базы и косяки запросов очень быстро отлавливаются и ессно устраняются. (файл разбухает и не очищается, но про это пока хз)
Параметры запуска mysqld.exe могут быть иными и выбираются по личному усмотрению, но про это спросите у Гугля...
Контроль выполнения запросов к БД.
Много времени отнимали поиск и устранение непонимания базы чего от неё хотят.
Дэбаггер для Shop-script-а прикрутить не получилось, поэтому потребовалось иметь логи всех запросов к БД, т.к. часто все работает, а условие, например, не выполняется.
Перерыв массу данных по форумам нашел следующее решение.
В Mysql есть утилита mysqld.exe. Запуск её с нужными параметрами решает нашу задачку.
Для этого в файл Z:\denwer\scripts\init.d\mysql.pl нужно добавить всего одну строчку:
"--log=C:/localhost.log",
в данном куске кода:
PHP:
# Run the server.
my $cmd = join " ", (
"start $exe",
($exe=~/mysqld-max/? ("--defaults-file=$config") : ()),
"--user=root",
"--standalone",
# "--init-connect=\"insert into mysql.test set test=current_timestamp()\"",
"--basedir=$basedir",
"--character-sets-dir=$basedir/share/charsets",
"--log=C:/localhost.log",
($CNF{mysql_args}||""),
);
Результат: в корне диска "C:\" будет создан лог-файл localhost.log всех запросов к Mysql-базе Дэнвера.
(путь к файлу ессно можно прописывать любой. )
В файле сразу видно, что именно Шоп "спрашивает" у базы и косяки запросов очень быстро отлавливаются и ессно устраняются. (файл разбухает и не очищается, но про это пока хз)
Параметры запуска mysqld.exe могут быть иными и выбираются по личному усмотрению, но про это спросите у Гугля...