Некорректная работа библиотеки RedBeanPHP на OpenServer

269
23 декабря 2021, 11:00

Раньше всё работало нормально. Но последнее время при выполнении функций:

$somebean = R::dispense('sometable');
...
R::store($somebean); //<-- эта строка генерирует ошибку

библиотеки RedBeanPHP, в том случае, когда мы добавляем запись в уже имеющуюся таблицу, возникает ошибка:

Fatal error: Uncaught [23000] - SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null trace: #0 W:\domains\EOPMS\eopms\libs\rb.php(1035): RedBeanPHP\Driver\RPDO->runQuery('INSERT INTO us...', Array) #1 W:\domains\EOPMS\eopms\libs\rb.php(1072): RedBeanPHP\Driver\RPDO->GetAll('INSERT INTO us...', Array) #2 W:\domains\EOPMS\eopms\libs\rb.php(4246): RedBeanPHP\Driver\RPDO->GetOne('INSERT INTO us...', Array) #3 W:\domains\EOPMS\eopms\libs\rb.php(5762): RedBeanPHP\Adapter\DBAdapter->getCell('INSERT INTO us...', Array, 0) #4 W:\domains\EOPMS\eopms\libs\rb.php(5889): RedBeanPHP\QueryWriter\AQueryWriter->insertRecord('users', Array, Array) #5 W:\domains\EOPMS\eopms\libs\rb.php(8651): RedBeanPHP\QueryWriter\AQueryWriter->updateRecord('users', Array, 0) #6 W:\domains\EOPMS\eopms\libs\rb.php(8222): RedBeanPHP\Repository\Fluid->storeBean(Object(RedBeanPHP\OODBBean)) #7 W:\domains\EOPMS\eopms\libs\rb.php(9371): RedBeanPHP\Repository->store(Object(RedBeanPHP\OODBBean)) #8 W:\domains\EOPMS\eopms\libs\rb.php in W:\domains\EOPMS\eopms\libs\rb.php on line 768

Ключевую фразу выделил жирным. Не понимаю, как может колонка id принимать значение null, когда я вызываю R::dispense('sometable') и идентификатор строки присваивается автоматически.

Также при вызове скрипта с функцией R::store($somebean) из консоли, происходит зависание, даже в том случае, когда добавляется запись в новую таблицу.

На арендованном сервере выполнение тех же самых скриптов абсолютно не вызывает никаких неполадок, то есть дело явно не в неправильно написанном коде.

Кто сталкивался с подобным поведением OpenServer? Может быть там просто случайно сбились какие-то настройки? Текущая версия OpenServer 5.2.2.

Answer 1

Поскольку ошибка утверждает, что значение столбца null, а используемый код одинаков и работает на разных серверах, то различия следует искать в БД.
Т.к. речь идет о ключевом столбце таблицы и о запросе на вставку, то, очевидно, его значение не генерируется автоматически, то есть столбец не автоинкрементный.

READ ALSO
Открытие процесса посредством PHP

Открытие процесса посредством PHP

Необходимо реализовать открытие стороннего приложения, после того, как придёт GET (или POST, неважно) запрос от пользователя, далее, это приложение...

112
Как решить проблему с php.ini?

Как решить проблему с php.ini?

Пытаюсь запустить composer чтобы тот стянул проект, но выходят вот такие ошибки:

232
При попытке парсинга сайта с использованием cUrl выдаёт &quot;setting cookie...&quot;

При попытке парсинга сайта с использованием cUrl выдаёт "setting cookie..."

Нужно спарсить данные с этого сайта https://bankrotfedresurs

217