我已经通过stackoverflow和其他论坛上的线程数来找到答案,但找不到相关的答案。人们采用了不同的方法,但迄今为止没有人对我有用。
我在XAMPP上使用CI 3,每当我在模型中加载数据库库时,我都会遇到500错误。
这是我的CI数据库配置信息:
'hostname' => 'localhost',
'username' => 'my_user',
'password' => 'my_pass',
'database' => 'prod_db',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
PHP ini db库如下:
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
;extension=php_ftp.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=php_snmp.dll
我的型号代码如下:
class loginmodel extends CI_Model {
public function validate_login($username, $password) {
$this->load->database();
$var = 0;
return $var;
}
}
每当我删除$ this-> load-> database();从模型,我的代码运行,我能够重定向到“登录失败”页面。但是,每当我在autoload.php中加载我的数据库或在上面的模型中加载它时,代码都会失败。
Autoload.php $ autoload ['libraries'] = array('database');
Apache错误日志显示以下错误,但我无法理解为什么会发生这种情况。
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\php\\ext\\php_mysqli.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\php\\ext\\php_pdo_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
请告知。
编辑:
我验证了所有配置都没问题,并且如评论中所述,我将环境变量添加到Windows并通过PHPInfo验证mysqli和mysqlnd已加载。
答案 0 :(得分:0)
尽管所有配置都正确,但错误仍然存在,我做了一个干净的CI安装,以重现库加载失败。此时CI返回了拒绝数据库访问的错误。
然后我意识到迁移后,数据库用户未在新环境中创建。因此,一旦我创建了所需的用户并为其分配了所需的权限,我就可以正常运行代码。
因此,如果将来遇到此类问题,以下步骤可能有所帮助:
如果无效,请在设置数据库配置之后和设置.htaccess之前,在单独的目录上执行CI的全新安装并加载数据库,直到可以重现错误为止。
希望错误消除!