Yii框架CDBCommand错误

时间:2016-12-16 16:07:32

标签: php yii frameworks

我有这个错误,我是yii框架的新手。移动到新服务器后,它在另一台服务器上工作正常,我只是更换了我的数据库和我的框架;我什么都没改变!这是我得到的错误:

CDbException

CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1364 Field 'geolocationDetails' doesn't have a default value. The SQL statement executed was: INSERT INTO `hts_users` (`mobile_status`, `name`, `username`, `email`, `password`, `userstatus`, `activationStatus`, `createdDate`) VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5, :yp6, :yp7)

/var/www/domain/public_html/folder/framework/db/CDbCommand.php(358)

346         {
347             if($this->_connection->enableProfiling)
348                 Yii::endProfile('system.db.CDbCommand.execute('.$this->getText().$par.')','system.db.CDbCommand.execute');
349 
350             $errorInfo=$e instanceof PDOException ? $e->errorInfo : null;
351             $message=$e->getMessage();
352             Yii::log(Yii::t('yii','CDbCommand::execute() failed: {error}. The SQL statement executed was: {sql}.',
353                 array('{error}'=>$message, '{sql}'=>$this->getText().$par)),CLogger::LEVEL_ERROR,'system.db.CDbCommand');
354 
355             if(YII_DEBUG)
356                 $message.='. The SQL statement executed was: '.$this->getText().$par;
357 
358             throw new CDbException(Yii::t('yii','CDbCommand failed to execute the SQL statement: {error}',
359                 array('{error}'=>$message)),(int)$e->getCode(),$errorInfo);
360         }
361     }
362 
363     /**
364      * Executes the SQL statement and returns query result.
365      * This method is for executing an SQL query that returns result set.
366      * @param array $params input parameters (name=>value) for the SQL execution. This is an alternative
367      * to {@link bindParam} and {@link bindValue}. If you have multiple input parameters, passing
368      * them in this way can improve the performance. Note that if you pass parameters in this way,
369      * you cannot bind parameters or values using {@link bindParam} or {@link bindValue}, and vice versa.
370      * Please also note that all values are treated as strings in this case, if you need them to be handled as
Stack Trace
#0  
–  /var/www/domain/public_html/folder/framework/db/ar/CActiveRecord.php(1080): CDbCommand->execute()
1075         {
1076             Yii::trace(get_class($this).'.insert()','system.db.ar.CActiveRecord');
1077             $builder=$this->getCommandBuilder();
1078             $table=$this->getTableSchema();
1079             $command=$builder->createInsertCommand($table,$this->getAttributes($attributes));
1080             if($command->execute())
1081             {
1082                 $primaryKey=$table->primaryKey;
1083                 if($table->sequenceName!==null)
1084                 {
1085                     if(is_string($primaryKey) && $this->$primaryKey===null)
#1  
–  /var/www/domain/public_html/folder/framework/db/ar/CActiveRecord.php(809): CActiveRecord->insert(null)
804      * @return boolean whether the saving succeeds
805      */
806     public function save($runValidation=true,$attributes=null)
807     {
808         if(!$runValidation || $this->validate($attributes))
809             return $this->getIsNewRecord() ? $this->insert($attributes) : $this->update($attributes);
810         else
811             return false;
812     }
813 
814     /**
#2  
–  /var/www/domain/public_html/folder/protected/modules/admin/controllers/UserController.php(67): CActiveRecord->save(false)
62             $password = $_POST['Users']['password'];
63             $model->userstatus = 1;
64             $model->activationStatus = 1;
65             if($model->validate()) {
66                 $model->password = base64_encode($password);
67                 $model->save(false);
68                 $siteSettings = Sitesettings::model()->find();
69                 $mail = new YiiMailer();
70                 if($siteSettings->smtpEnable == 1) {
71                     //$mail->IsSMTP();                         // Set mailer to use SMTP
72                     $mail->Mailer = 'smtp';                         // Set mailer to use SMTP
#3  
–  /var/www/domain/public_html/folder/framework/web/actions/CInlineAction.php(49): UserController->actionCreate()
44         $controller=$this->getController();
45         $method=new ReflectionMethod($controller, $methodName);
46         if($method->getNumberOfParameters()>0)
47             return $this->runWithParamsInternal($controller, $method, $params);
48 
49         $controller->$methodName();
50         return true;
51     }
52 }
#4  
–  /var/www/domain/public_html/folder/framework/web/CController.php(308): CInlineAction->runWithParams(array())
303     {
304         $priorAction=$this->_action;
305         $this->_action=$action;
306         if($this->beforeAction($action))
307         {
308             if($action->runWithParams($this->getActionParams())===false)
309                 $this->invalidActionParams($action);
310             else
311                 $this->afterAction($action);
312         }
313         $this->_action=$priorAction;
#5  
–  /var/www/domain/public_html/folder/framework/web/filters/CFilterChain.php(133): CController->runAction(CInlineAction)
128             $filter=$this->itemAt($this->filterIndex++);
129             Yii::trace('Running filter '.($filter instanceof CInlineFilter ? get_class($this->controller).'.filter'.$filter->name.'()':get_class($filter).'.filter()'),'system.web.filters.CFilterChain');
130             $filter->filter($this);
131         }
132         else
133             $this->controller->runAction($this->action);
134     }
135 }
#6  
–  /var/www/domain/public_html/folder/framework/web/CController.php(291): CFilterChain->run()
286             $this->runAction($action);
287         else
288         {
289             $priorAction=$this->_action;
290             $this->_action=$action;
291             CFilterChain::create($this,$action,$filters)->run();
292             $this->_action=$priorAction;
293         }
294     }
295 
296     /**
#7  
–  /var/www/domain/public_html/folder/framework/web/CController.php(265): CController->runActionWithFilters(CInlineAction, array("postOnly + delete"))
260         {
261             if(($parent=$this->getModule())===null)
262                 $parent=Yii::app();
263             if($parent->beforeControllerAction($this,$action))
264             {
265                 $this->runActionWithFilters($action,$this->filters());
266                 $parent->afterControllerAction($this,$action);
267             }
268         }
269         else
270             $this->missingAction($actionID);
#8  
–  /var/www/domain/public_html/folder/framework/web/CWebApplication.php(282): CController->run("create")
277         {
278             list($controller,$actionID)=$ca;
279             $oldController=$this->_controller;
280             $this->_controller=$controller;
281             $controller->init();
282             $controller->run($actionID);
283             $this->_controller=$oldController;
284         }
285         else
286             throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
287                 array('{route}'=>$route===''?$this->defaultController:$route)));
#9  
–  /var/www/domain/public_html/folder/framework/web/CWebApplication.php(141): CWebApplication->runController("admin/user/create")
136             foreach(array_splice($this->catchAllRequest,1) as $name=>$value)
137                 $_GET[$name]=$value;
138         }
139         else
140             $route=$this->getUrlManager()->parseUrl($this->getRequest());
141         $this->runController($route);
142     }
143 
144     /**
145      * Registers the core application components.
146      * This method overrides the parent implementation by registering additional core components.
#10 
–  /var/www/domain/public_html/folder/framework/base/CApplication.php(184): CWebApplication->processRequest()
179     public function run()
180     {
181         if($this->hasEventHandler('onBeginRequest'))
182             $this->onBeginRequest(new CEvent($this));
183         register_shutdown_function(array($this,'end'),0,false);
184         $this->processRequest();
185         if($this->hasEventHandler('onEndRequest'))
186             $this->onEndRequest(new CEvent($this));
187     }
188 
189     /**
#11 
–  /var/www/domain/public_html/folder/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',3);
11 
12 require_once($yii);
13 Yii::createWebApplication($config)->run();
2016-12-16 16:27:08 Apache Yii Framework/1.1.16-dev

这是我得到的整个错误如果我错过了某些内容或者您希望我过去任何事情,请提前告知我们,谢谢。

1 个答案:

答案 0 :(得分:1)

问题解决了我添加了这个mysql配置 的sql_mode = IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 谢谢大家帮助使用stackoverflow非常感谢 感谢@Gravity