之前一切正常。但是最近在执行功能时:
$somebean = R::dispense('sometable');
...
R::store($somebean); //<-- эта строка генерирует ошибку
RedBeanPHP 库,当我们向现有表添加条目时,会发生错误:
致命错误:未捕获 [23000] - SQLSTATE [23000]:违反完整性约束:1048列 'id' 不能为空跟踪:#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:\ domain\EOPMS\eopms\libs\rb.php 在第 768 行
关键短语以粗体突出显示。我不明白当我调用一个列并自动分配行 ID时如何id获取一个值。nullR::dispense('sometable')
此外,当从控制台调用带有函数的脚本R::store($somebean)时,会发生挂起,即使将记录添加到新表也是如此。
在租用的服务器上,执行相同的脚本根本不会造成任何问题,也就是说,这显然不是代码编写错误的问题。
谁遇到过 OpenServer 的类似行为?也许某些设置只是不小心弄乱了?OpenServer 的当前版本是 5.2.2。
由于错误表明该列的
null值为 ,并且使用的代码相同并且适用于不同的服务器,因此应在数据库中查找差异。因为 我们说的是表的键列和插入查询,那么,很明显,它的值不是自动生成的,也就是列不是自增的。