Я включаю следующее во время разработки:
мой.cnf:
[mysqld]
log_slow_queries = /var/log/mysql/mysql-slow.log
sql_mode = STRICT_ALL_TABLES
SQL_MODE
STRICT_ALL_TABLES
Включите строгий режим для всех механизмов хранения. Недопустимые значения данных отклоняются.
Например, рассмотрим следующее:
CREATE TABLE `posts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
`date` datetime NOT NULL
);
INSERT INTO `posts` (`title`, `date`) VALUES ('Title text', NULL);
Если вы используете STRICT_ALL_TABLES
sql_mode
, mysql не выдаст ошибку при попытке вставить значение NULL
в столбец NOT NULL
, вместо этого mysql вставит данные по умолчанию в зависимости от типа столбца. например для столбца datetime NOT NULL
, когда вы вставите значение NULL
, mysql по умолчанию установит значение datetime в 0000-00-00 00-00-00
.
Строгий режим, в некотором смысле, подобен повышению уровня error_reporting и отображению ошибок в PHP, что является лучшей практикой во время разработки.
ini_set('error_reporting', -1);
ini_set('display_errors', true);
Итак, я думаю, что я ищу, какие конфигурации вы рекомендуете во время разработки и почему?
display_errors=1
иerror_reporting(-1)
в PHP. - person Gerard Roche   schedule 10.04.2012