Php &引用;文字与格式字符串“不匹配”;使用ORM&;保存日期时;Zend2&;神谕
当我尝试使用ORM保存日期或日期时间字段时,特别是在Zend2+Oracle中,我会遇到以下错误: 使用参数[23,“部分标题”、“部分片段”、“部分内容”、“1”、“2016-06-18 00:00:00”、“2]”执行“插入新闻(ID、标题、片段、内容、活动、发布日期、类别ID)值(?、、、、、、、、、、、?)”时发生异常: ORA-01861:文字与格式字符串不匹配Php &引用;文字与格式字符串“不匹配”;使用ORM&;保存日期时;Zend2&;神谕,php,exception,doctrine-orm,oracle11g,zend-framework2,Php,Exception,Doctrine Orm,Oracle11g,Zend Framework2,当我尝试使用ORM保存日期或日期时间字段时,特别是在Zend2+Oracle中,我会遇到以下错误: 使用参数[23,“部分标题”、“部分片段”、“部分内容”、“1”、“2016-06-18 00:00:00”、“2]”执行“插入新闻(ID、标题、片段、内容、活动、发布日期、类别ID)值(?、、、、、、、、、、、?)”时发生异常: ORA-01861:文字与格式字符串不匹配 经过一些搜索,我发现这背后的原因很可能是ORM中的错误,OracleSessionInit在使用Oracle时没有正确初始化
经过一些搜索,我发现这背后的原因很可能是ORM中的错误,OracleSessionInit在使用Oracle时没有正确初始化,因此NLS或其他环境设置没有加载,这意味着没有正确处理日期。我已通过替换行将其修复
return EntityManager::create($connection, $config);
在文件中:\vendor\doctor\doctor orm module\src\DoctrineORMModule\Service\EntityManageFactory.php
函数下的createService.php
使用以下行:
$em = EntityManager::create($connection, $config);
$dbh = $em->getConnection();
$sth = $dbh->prepare("ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'");
$sth->execute();
return $em;
我换了线把它修好了
return EntityManager::create($connection, $config);
在文件中:\vendor\doctor\doctor orm module\src\DoctrineORMModule\Service\EntityManageFactory.php
函数下的createService.php
使用以下行:
$em = EntityManager::create($connection, $config);
$dbh = $em->getConnection();
$sth = $dbh->prepare("ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'");
$sth->execute();
return $em;