0

CodeIgniter を使用してコマンドラインから cron を実行しようとしています。

最初は空白が返されていましたが、Codeigniter フォーラムを利用して、バージョン 2.1.3 にバグがあり、Input.php の行編集が必要であることがわかりました。

それは修正されました。それでも機能しませんでした。ホームページをロードしているだけでした。

さらに検索すると、設定で uri_protocol を AUTO に変更することになり、最終的に CLI は CI Web サイトで概説されている例で動作していました。

ただし、cron コントローラーでモデルを使用した場合、CLI は再び空白の前髪を返します。

コントローラー

<?php

class Cron extends CI_Controller
{
   public function admin_update()
   {

      $this->load->model('admin_model');
      $this->admin_model->admin_cron(); 
   }
}

モデル関数

function admin_cron()
{
   $this->load->database();
   echo "two";
}

それを壊しているのは $this->load->database() 行のようです..これを削除すると「2」が出力されるように..

誰かが理由を知っていますか?

ありがとう

4

1 に答える 1

0

$this->load->database(); に入力を提供していません。

代わりに、このようなものにする必要があります

var $DB; //global variable
$this->DB = $this->load->database('database1',TRUE);

$this->DB を使用して、次のように db 操作を実行します。

$this->DB->query($query); 

これらの設定エントリを config/database.php に入れます

$db['database1']['hostname'] = 'serverIP';
$db['database1']['username'] = 'username';
$db['database1']['password'] = 'pwrd';
$db['database1']['database'] = 'DB name';
$db['database1']['dbdriver'] = 'mysql';
$db['database1']['dbprefix'] = '';
$db['database1']['pconnect'] = FALSE;
$db['database1']['db_debug'] = TRUE;
$db['database1']['cache_on'] = FALSE;
$db['database1']['cachedir'] = '';
$db['database1']['char_set'] = 'utf8';
$db['database1']['dbcollat'] = 'utf8_general_ci';
$db['database1']['swap_pre'] = '';
$db['database1']['autoinit'] = TRUE;
$db['database1']['stricton'] = FALSE;

PS: http://ellislab.com/codeigniter/user-guide/general/models.html#conn

上記のリンクは、データベースへの接続方法に関するものです

于 2013-02-28T16:04:41.497 に答える