ローカルのランプ スタックで動作する Yii アプリがあります。アプリをランプサーバーに配置すると、アプリはデータベースを読み取って実行しますが、アプリはデータベースに正常に書き込みません。エラーログを取得していません。何かご意見は?
dbを更新する方法は次のとおりです。
public function actionIndex()
{
if ($_GET["yep"] == "") {
pd_error("You are not logged in!");
}
list($uid, $domain) = preg_split("/@/",$_GET["yep"],2);
$model=$this->loadModel($uid);
$this->redirect($model->URL."?".$model->Unique_ID);
}
public function loadModel($uid)
{
$model=People::model()->findByPk($uid);
$model->Login_Count++;
$model->Last_Logged=date('Y-m-d H:i:s');
if ($model->validate()) {
$model->save();
} else {
$this->render('notice');
}
return $model;
}
奇妙なことに、db が Login_Count と Last_Logged を更新しない場合でも、ユーザーは URL にリダイレクトされるため、通知ページが読み込まれないため、SQL が有効である必要があります。何かご意見は?
アップデート + ソリューション
問題は、mysql サーバーの autocommit が false に設定されていることでした。これをアプリ レベルでオーバーライドするには、次の行を config/main.php db 配列に追加します。
'db'=>array(
...
'initSQLs'=>array('SET AUTOCOMMIT=1',),
...
);