Терзают меня смутные сомнения, что я об этом уже спрашивал - но никак не могу найти тему. В общем такие дела: из скрипта выполняю запрос - INSERT INTO *** VALUES ( '', 'test', 'test' и т.д. Первый столбец - id int(10) auto_increment NOT NULL В основном всегда айдишник вставляется автоматически. Но давным давно у меня было так, что он ругался - "не задано значения для столбца id". И в ГУЙне для mysql5 при вставке бывает частенько такая ошибка - но при этом запись создаётся. У меня тогда решилось тем, что я изменил какую-то опцию в my.cnf. Вроде это была какая-то новая фича от разработчиков, которую надо было отключить.. Щас вот убей, не могу вспомнить че за режим я там переключал - может кто подскажет?
INSERT INTO *** VALUES (NULL, 'test', 'test' и т.д. И поле ID должно быть NOT NULL Илиже при insert'e указывай все поля кроме id Это я так... На будующее... А с режимом - хз
во, нашёл: http://www.hcube.ru/support/faq/287/index.php?ELEMENT_ID=3109 PHP: Out of range value adjusted for column 'USER_ID' или Incorrect integer value: '' for column 'SESS_SESSION_ID' Out of range value adjusted for column 'USER_ID' или Incorrect integer value: '' for column 'SESS_SESSION_ID' При работе системы получаем сообщение об ошибке MySQL: MySQL Query Error: INSERT INTO b_stat_session(GUEST_ID, NEW_GUEST, USER_ID, USER_AUTH, ...) VALUES ('1', 'N', '', 'N', ...) [Out of range value adjusted for column 'USER_ID' at row 1] MySQL Query Error: INSERT INTO b_stat_session_data(DATE_FIRST, DATE_LAST, GUEST_MD5, SESS_SESSION_ID, SESSION_DATA) VALUES (now(),now(), '76d5f8d2a62a729069c568492da19fdf','',SESS_REQUEST_UR_GRABBER_STOP_TIME";a:1:{i:0;i:121;}s:27:"ACTIVITY_EXCEEDING_NOTIFIED";N;}') [Incorrect integer value: '' for column 'SESS_SESSION_ID' at row 1] Ответ Скорее всего, у вас установлен MySQL версии 5.x Вам необходимо из значения для переменной sql-mode убрать STRICT_TRANS_TABLES. 1 вариант: изменение конфигурации сервера через my.cnf. Например, sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" вместо sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 2 вариант: если у Вас нет доступа к конфигурационным файлам MySQL-сервера, попробуйте в /bitrix/php_interface/after_connect.php добавить строку: $DB->Query("set sql_mode=''") Подробнее на официальном сайте: http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
да, с null у меня всё в порядке было. значит у проблемы три решения: 1. исправить конфиг (самое нежелательное) 2. выполнить "set sql_mode=''" 3. использовать null (предпочтительное)