Yii Framework Forum: Undefined Index: Comment (Yii 1.1.13) - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Undefined Index: Comment (Yii 1.1.13) Error only with 1.1.13. With 1.1.12 works fine. Rate Topic: -----

#1 User is offline   jamon 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 09-March 11

Posted 23 January 2013 - 07:56 AM

Hi,

since I upgrade yii 1.1.12 to 1.1.13, my app crash.
I have 4 DB conections: 1xOracle 10g, 3x MySQL 5.2 and 1xMySQL 4.1, used by several models.

Using 1.1.12 my App works fine. Using 1.1.13, I get "Undefined index: Comment" only with models related MySQL 4.

But I haven't any field "Comment"... Perhaps it is referered to Comment field attribute.


PHP notice
Undefined index: Comment
/var/tvaprivado/yii/framework/db/schema/mysql/CMysqlSchema.php(199)

187      * @return CDbColumnSchema normalized column metadata
188      */
189     protected function createColumn($column)
190     {
191         $c=new CMysqlColumnSchema;
192         $c->name=$column['Field'];
193         $c->rawName=$this->quoteColumnName($c->name);
194         $c->allowNull=$column['Null']==='YES';
195         $c->isPrimaryKey=strpos($column['Key'],'PRI')!==false;
196         $c->isForeignKey=false;
197         $c->init($column['Type'],$column['Default']);
198         $c->autoIncrement=strpos(strtolower($column['Extra']),'auto_increment')!==false;
199         $c->comment=$column['Comment']; <---CRASH
200 
201         return $c;
202     }
203 
204     /**
205      * @return float server version.
206      */
207     protected function getServerVersion()
208     {
209         $version=$this->getDbConnection()->getAttribute(PDO::ATTR_SERVER_VERSION);
210         $digits=array();
211         preg_match('/(\d+)\.(\d+)\.(\d+)/', $version, $digits);

Stack Trace
#0 /var/tvaprivado/yii/framework/db/schema/mysql/CMysqlSchema.php(167): CMysqlSchema->createColumn(array("Field" => "email", "Type" => "varchar(80)", "Null" => "", "Key" => "PRI", ...))
#1 /var/tvaprivado/yii/framework/db/schema/mysql/CMysqlSchema.php(119): CMysqlSchema->findColumns(CMysqlTableSchema)
#2 /var/tvaprivado/yii/framework/db/schema/CDbSchema.php(103): CMysqlSchema->loadTable("users")
#3 /var/tvaprivado/yii/framework/db/ar/CActiveRecord.php(2309): CDbSchema->getTable("users")
#4 /var/tvaprivado/yii/framework/db/ar/CActiveRecord.php(387): CActiveRecordMetaData->__construct(Users)
#5 /var/tvaprivado/yii/framework/web/CActiveDataProvider.php(74): CActiveRecord::model("Users")
#6 /var/tvaprivado/francisco/protected/controllers/UsersController.php(251): CActiveDataProvider->__construct("Users", array("criteria" => array("order" => "email DESC"), "pagination" => array("pageSize" => 10)))

246                 'order'=>'email DESC',
247             ),
248             'pagination'=>array(
249                 'pageSize'=>10,
250             ),
251         ));
252         $this->render('index',array(
253             'dataProvider'=>$dataProvider,
254         )); // <--CRASH!
255     }
256 

#7 /var/tvaprivado/yii/framework/web/actions/CInlineAction.php(49): UsersController->actionIndex()
#8 /var/tvaprivado/yii/framework/web/CController.php(308): CInlineAction->runWithParams(array("r" => "Users"))
#9 /var/tvaprivado/yii/framework/web/filters/CFilterChain.php(133): CController->runAction(CInlineAction)
#10 /var/tvaprivado/yii/framework/web/filters/CFilter.php(40): CFilterChain->run()
#11 /var/tvaprivado/yii/framework/web/CController.php(1145): CFilter->filter(CFilterChain)
#12 /var/tvaprivado/yii/framework/web/filters/CInlineFilter.php(58): CController->filterAccessControl(CFilterChain)
#13 /var/tvaprivado/yii/framework/web/filters/CFilterChain.php(130): CInlineFilter->filter(CFilterChain)
#14 /var/tvaprivado/yii/framework/web/CController.php(291): CFilterChain->run()
#15 /var/tvaprivado/yii/framework/web/CController.php(265): CController->runActionWithFilters(CInlineAction, array("accessControl"))
#16 /var/tvaprivado/yii/framework/web/CWebApplication.php(282): CController->run("")
#17 /var/tvaprivado/yii/framework/web/CWebApplication.php(141): CWebApplication->runController("Users")
#18 /var/tvaprivado/yii/framework/base/CApplication.php(169): CWebApplication->processRequest()
#19 /var/tvaprivado/francisco/index.php(13): CApplication->run()

08 defined('YII_DEBUG') or define('YII_DEBUG',true);
09 // specify how many levels of call stack should be shown in each log message
10 defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',1);
11 
12 require_once($yii);
13 Yii::createWebApplication($config)->run();



Apache/2.2.16 (Debian 6) Yii Framework/1.1.13 PHP 5.3.3




EDIT:
I solved temporaly:
/**
         * Creates a table column.
         * @param array $column column metadata
         * @return CDbColumnSchema normalized column metadata
         */
        protected function createColumn($column)
        {
                $c=new CMysqlColumnSchema;
                $c->name=$column['Field'];
                $c->rawName=$this->quoteColumnName($c->name);
                $c->allowNull=$column['Null']==='YES';
                $c->isPrimaryKey=strpos($column['Key'],'PRI')!==false;
                $c->isForeignKey=false;
                $c->init($column['Type'],$column['Default']);
                $c->autoIncrement=strpos(strtolower($column['Extra']),'auto_increment')!==false;
                //$c->comment=$column['Comment'];
                $c->comment='';

                return $c;
        }

0

#2 User is offline   CeBe 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 534
  • Joined: 16-July 10
  • Location:Berlin. Germany

Posted 23 January 2013 - 10:27 AM

We added Table comment support in Yii 1.1.13 wich is Available in MySQL 5.x

As MySQL 4 is not maintained anymore, we are not testing yii on that version of MySQL.
http://dev.mysql.com.../refman/4.1/en/

There seems to be a different way of how the comment field is returned in MySQL 4.

Can you show the output of "'SHOW FULL COLUMNS FROM tableName;"?
0

#3 User is offline   jamon 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 09-March 11

Posted 23 January 2013 - 12:00 PM

View PostCeBe, on 23 January 2013 - 10:27 AM, said:

We added Table comment support in Yii 1.1.13 wich is Available in MySQL 5.x

As MySQL 4 is not maintained anymore, we are not testing yii on that version of MySQL.
http://dev.mysql.com.../refman/4.1/en/

There seems to be a different way of how the comment field is returned in MySQL 4.

Can you show the output of "'SHOW FULL COLUMNS FROM tableName;"?


The MySQL version is MySQL 4.0.24. This is the output from PHPMyAdmin of SHOW FULL COLUMNS:
Field 	 	Type 	 	Null 	Key 	Default 	Extra 	Privileges
email 	 	varchar(80) 	  	 	PRI 	  	select,insert,update,references
password 	varchar(20) 	  	  	  	 	select,insert,update,references
nombre 	 	varchar(80) 	  	  	  	 	select,insert,update,references
apellidos 	varchar(200) 	  	  	  	 	select,insert,update,references
empresa 	varchar(5) 	  	 	false 	  	select,insert,update,references
cod_cliente 	int(11) 	  	 	0 	  	select,insert,update,references
quota 	 	int(10) unsigned 	 	52428800 	select,insert,update,references


Thanks!
0

#4 User is offline   CeBe 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 534
  • Joined: 16-July 10
  • Location:Berlin. Germany

Posted 23 January 2013 - 03:22 PM

Thx, fixed: https://github.com/y...yii/issues/2030
1

#5 User is offline   jamon 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 09-March 11

Posted 24 January 2013 - 06:32 AM

Thanks CeBe!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users