【发布时间】:2017-10-14 18:20:24
【问题描述】:
我已经在 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 中加载我的数据库库或在上述模型中加载它时,代码都会失败。
自动加载.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
请指教。
编辑:
我验证了所有配置都正常,如 cmets 中所述,我将环境变量添加到 windows 并通过 PHPInfo 验证 mysqli 和 mysqlnd 已加载。
【问题讨论】:
-
您是否尝试过至少一次重新启动 Apache(以及所有服务 - 包括 PHP)?
-
我在环境变量中添加了路径并重新启动了 Apache。 Mysql 错误消失了,但实际问题仍然存在。每当我在 codeigniter 中加载数据库库时,我都会收到 500 错误。但是当我从 autoload.php 或模型中删除库时,代码运行良好。不过作为参考,我使用的是 PHP 7.1.8 和 Apache 2.4。并且 phpmyadmin 运行得很好(提示我验证系统现在拾取 mysqli 没有问题。当我回显 phpinfo 时,我看到 mysqli 和 mysqlnd 已加载。如果解决了这个问题,我将不胜感激之前有人。
-
呃,大错特错!不敢相信。所以这个线程真的很有帮助。关于错误,在确保配置正常后,我检查了 xampp 中的迁移数据库,并且未定义我的数据库用户名。设法通过在服务器的不同目录中运行 CI 的新副本并重现错误来验证它。虽然干净的 CI 安装确实引发了错误,但我猜我之前的代码没有返回任何错误,因为 .htaccess 被配置为抑制它们。谢谢大家。
标签: codeigniter-3