I did say that changing it might cause more problems.  And sure enough it
appears that other components assume column names are lower case.  So
basically I don't think you can have mixed case column names.

Funny thing is that someone from Zend just committed this change to svn. 
Wonder if they ran the unit tests before hand?  Wonder if we even have
tests for the table object?  Not in the delivery package.

>
>
> I tried this solution, modifiying /Zend/Db/Pdo/Abstract line 95:
>
>             // force names to lower case
>             $this->_connection->setAttribute(PDO::ATTR_CASE,
> PDO::CASE_LOWER);
>
>             to
>
>             // force names to lower case
>             $this->_connection->setAttribute(PDO::ATTR_CASE,
> PDO::CASE_NATURAL);
>
>
> and now the app completely crashes with many notices like:
>
>
> Notice: Undefined index: field in
> /../library/Zend/Db/Adapter/Pdo/Mysql.php
> on line 139
>
> Notice: Undefined index: field in
> /../library/Zend/Db/Adapter/Pdo/Mysql.php
> on line 142
>
> Notice: Undefined index: type in /../library/Zend/Db/Adapter/Pdo/Mysql.php
> on line 144
>
> Notice: Undefined index: default in
> /../library/Zend/Db/Adapter/Pdo/Mysql.php on line 145
>
> Notice: Undefined index: null in /../library/Zend/Db/Adapter/Pdo/Mysql.php
> on line 146
>
> Notice: Undefined index: key in /../library/Zend/Db/Adapter/Pdo/Mysql.php
> on
> line 151
>
> I looked it up and its the describeTable function within MySQL's extension
> of the PDO. Any ideas?
>
>
> Art Hundiak wrote:
>>
>> Basic problem is that the pdo adapter has:
>>             // force names to lower case
>>             $this->_connection->setAttribute(PDO::ATTR_CASE,
>> PDO::CASE_LOWER);
>>
>> You will have to figure out how to change it to CASE_NATURAL.  Even then
>> I
>> suspect you might have trouble with case sensitivity.
>>
>> I myself rather liked the camel case conversion.  It being dropped is
>> one
>> of the reasons I gave up on Zend_Db.
>>
>>>
>>> It appears that all column preparation has been removed on each row.
>>>
>>> 0.8 Usage:
>>>
>>> CREATE TABLE `accounts` (
>>>   `id` int(11) NOT NULL auto_increment,
>>>   `date_entered` datetime default NULL,
>>>   `date_modified` datetime default NULL,
>>>   PRIMARY KEY  (`id`)
>>> ) ENGINE=InnoDB;
>>>
>>> foreach($this->account as $account)
>>> {
>>>     echo $account->dateModified;
>>> }
>>>
>>> Current 0.9 Usage: (untested)
>>>
>>> foreach($this->account as $account)
>>> {
>>>     echo $account->date_modified;
>>> }
>>>
>>> I never liked the camel-casing. I found it confusing. I like the 0.9
>>> usage
>>> better because I know exactly what to expect. The camel-casing limited
>>> system predictability. (This can of course be argued both ways).
>>>
>>> Bug? Feature?
>>>
>>> -----Original Message-----
>>> From: Aaron Egaas [mailto:[EMAIL PROTECTED]
>>> Sent: March 19, 2007 10:26 AM
>>> To: [email protected]
>>> Subject: [fw-general] Zend_Db_Table_Row __get()
>>>
>>>
>>> Hello,
>>>
>>> Prior to 0.9, I was using underscored field names in my MySQL database
>>> and
>>> relying on Zend_Db's inflector to produce nice Camel-cased field names
>>> within the Zend framework. Since 0.9 with the inflector gone, I
>>> switched
>>> my
>>> field name in the database to camel case so I didn't have to refactor a
>>> lot
>>> of code. Unforunately I think I found a bug when I did this.
>>>
>>> All over my app I get exceptions saying the field (jobId for example)
>>> isn't
>>> found! I dumped out the Db_Row and all the fieldnames have been lower
>>> cased.
>>>
>>> I'm using MySQL's PDO. Anyone know whats causing my plight?
>>>
>>> -Aaron Egaas
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Zend_Db_Table_Row-__get%28%29-tf3428196s16154.html#a95
>>> 55537
>>> Sent from the Zend Framework mailing list archive at Nabble.com.
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Zend_Db_Table_Row-__get%28%29-tf3428196s16154.html#a9556665
> Sent from the Zend Framework mailing list archive at Nabble.com.
>
>


Reply via email to