Забыли пароль?
Запросите новый здесь.

Автор темы: Vveb--ws
ID темы: 3192
Информация:
Тема содержит 5 сообщения, была просмотрена 12065 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Пожелания и предложения
 Распечатать тему
в PHP 7.4 нельзя вставлять пустое значение в `id` как раньше
Vveb--ws
Приветствую!

в PHP 7.4 появилась ошибка:
Incorrect integer value: '' for column `vvebws`.`e9u2wmg47_times`.`id` at row 1


Скачать исходники  Код
$result = dbquery("INSERT INTO ".$db_prefix."times
(
 `id`,
 `time`
) VALUES (
  '',
  '". time() ."'
);




`id`как обычно - KEY PRIMARY AUTOINCREMENT и определяется автоматически по очереди. это норм.

но в некоторых плагинах (быдлокодеров или old-кодеров?) я встречал именно такое написание, когда в `id`вставляют ''.
раньше такое работало.

теперь надо
или отключать вывод ошибок
или переписывать всё старьё.

кто сталкивался?

PHP-Fusion 7 Bogatyr - бесплатная мультиязычная CMS для блога, форума, фотогалереи

vk.com/phpfusion
Создаю интернет-магазины и блоги, лендинги, форумы. Telegram: t.me/Vova_Kazakov
 
Web
Polarfox
Vveb--ws, я в принципе не вижу смысла ставить значение, тем более что тут пустая строка вместо цифры, еще и кавычки везде разные

https://dev.mysql...ement.html тут сказано что нужен именно 0 (либо еще пара случаев, но вообще 0)

все как обычно, делай как у них сказано и все будет нормально
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Vveb--ws
обычно при создании таблицы БД так
`id` int(32) UNSIGNED NOT NULL AUTO_INCREMENT,

и это работало всегда.
но не в PHP7 !

проблема не в том что ты не видишь,
а в том что везде в коде плагинов именно так, когда в `id`вставляют ''.

теперь надо переписывать всё старьё. это проблема!!!
я вот ещё раз столкнулся!

Polarfox написал:
https://dev.mysql...ement.html тут сказано что нужен именно 0 (либо еще пара случаев, но вообще 0)


да, можно и так как там написано.
INSERT INTO animals (id, name) VALUES(0, 'groundhog');

INSERT INTO animals (id, name) VALUES(NULL, 'squirrel');


а можно удалить id:
INSERT INTO animals (name) VALUES('squirrel');


PHP-Fusion 7 Bogatyr - бесплатная мультиязычная CMS для блога, форума, фотогалереи

vk.com/phpfusion
Создаю интернет-магазины и блоги, лендинги, форумы. Telegram: t.me/Vova_Kazakov
 
Web
Polarfox
плагины никогда не были эталоном, либо правишь их, либо на лету правишь запросы (я бы поправил плагины просто)

удалить id =
No value was specified for the AUTO_INCREMENT column, so MySQL assigned sequence numbers automatically

про это там тоже написано
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Vveb--ws
Polarfox написал:

либо на лету правишь запросы

а как?

VALUES ( '',

можно через автозамену

INSERT INTO ".$db_prefix."*** ( `id`,

любое название таблицы и `id`

я бы сделал чтобы старые плагины работали у всех, кто будет пользоваться моей сборкой
каждый MySQL запрос strpos() и substr() обрабатывать - замедлит CMS

PHP-Fusion 7 Bogatyr - бесплатная мультиязычная CMS для блога, форума, фотогалереи

vk.com/phpfusion
Создаю интернет-магазины и блоги, лендинги, форумы. Telegram: t.me/Vova_Kazakov
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)