我们正在使用Cakephp开发一个巨大的项目。我们已经开始使用MySQL,但现在他们要求转向Oracle!现在,我们开始了这个可爱的任务! :)CakePHP + Oracle + CamelCased列表名称问题
我们是而不是使用cakephp模式,但骆驼名称的表和它的列(这是客户的要求!)。
Oracle中的列表名称区分大小写,因为我们在创建表格时将名称放在“”(双引号)之间。如果我们不这样做的话,Oracle会把它放大。
但cakephp的oracle驱动似乎忽略camelcased配置,解析字段名称总是不区分大小写,并将名称变为lowercased在查询结果数组。
而不是
$res['TableName']['ColumnName'] //camelcased
我
$res['TableName']['columnname'] //lowercased! :(
没有任何人有任何想法如何克服?
oracle dbms **中的列名是**区分大小写的。如果你不用双引号显式指定它 - 所有的名字都是上面的。 – zerkms
你说得对,zerkms!我已经更新了这个问题。 – colares
更新: 更改CamelCase符号不是一个选项。 现在,我们做了以下操作: - 针对Oracle的CakePHP驱动程序的改进(我们可以稍后发布!) - 创建一个映射表名称的脚本(例如idperson => IdPerson)。这可能不是最好的方法。至少,我们将使用查询缓存。 ;) 另外,我们面临着很多由MySQL和Oracle之间的差异引起的问题,它们是CakePHP中的驱动程序。 我们已经知道“变化的司机”是纯粹的幻觉。但仍然有一些意想不到的问题。这将是一篇不错的论文。 我会尽全力让您发布。 – colares