【发布时间】:2010-10-23 17:28:09
【问题描述】:
我刚刚在 Windows 7 机器上建立了一个简单的 PHP Code Igniter 项目,IIS 7,快速 CGI,没有模块。
当我通过这样做this->load->database() 在 Model 类的函数之一中加载数据库时,线程似乎停止在该特定行上。后面的操作都不做。
class Account_model extends Model {
var $userId = '';
var $userName = '';
var $requestToken = '';
var $accessToken = '';
var $enabled = false;
var $startOfDay;
var $endOfDay;
function Account_model() {
parent::Model();
}
function get($userId) {
$this->load->database();
$query = $this->db->get_where('accounts', array('userId' => $userId), 1, 0);
return $query->result();
}
function insert() {
$this->load->database();
// ** stop **
$this->db->insert('accounts', $this); //never gets to this
}
}
如果我完全省略该行,我会在模型中得到一个 php 异常未定义变量 $db。
调用者控制器:
class SignUp extends Controller {
function SignUp() {
parent::Controller();
}
function createUser() {
echo 'processing';
$this->load->model('Account_model');
$this->Account_model->userId = 'asd';
$this->Account_model->userName = 'test_user_pls_delete';
$this->Account_model->enabled = true;
$this->Account_model->startOfDay = time();
$this->Account_model->insert();
echo 'done'; // never gets to this
}
}
我已验证数据库配置正确(主机名、驱动程序等),并且能够使用 MySQL workbrench 从机器连接到数据库服务器。
$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "{omitted}";
$db['default']['username'] = "{omitted}";
$db['default']['password'] = "{omitted}";
$db['default']['database'] = "{omitted}";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
数据库表名:accounts
- Id int(11) 主键 auto_increment
- UserId varchar(255) utf8_general_ci
- 用户名 varchar(255) utf8_general_ci
- requestToken varchar(255) utf8_general_ci
- AccessToken varchar(255) utf8_general_ci
- 启用 tinyint(1)
- startOfDay 时间
- endOfDay 时间
关于如何解决这个问题的任何想法?
【问题讨论】:
-
介意发布你的database.php吗?
-
不贴代码就帮不上忙了。我们需要查看引发此错误的代码、错误本身以及您的数据库配置设置。
-
经过进一步的尝试和错误,我发现我一定没有正确配置IIS,fast-cgi,php。相同的代码适用于 VS.php Web 开发服务器,但不适用于具有 fast-cgi 的适当 IIS。
标签: php codeigniter