gpt4 book ai didi

php - CodeIgniter 检查数据库是否错误

转载 作者:行者123 更新时间:2023-11-29 02:57:10 25 4
gpt4 key购买 nike

我正在开发一个连接到数据库并从表中检索数据的小型应用程序。但是我需要向调用者显示我无法连接到指定的主机。我怎样才能做到这一点?我试过使用这个片段,但它不起作用:

define('ERROR_STR', 'ERROR: ');
# ...
if ($this->db->_error_number() OR $this->db->_error_message()) {
die(ERROR_STR . $this->db->_error_number() . ': ' . $this->db->_error_message());
}

在我的日志中,我列出了这个:

ERROR - 2015-04-09 15:18:19 --> Severity: Warning  --> mysqli_connect(): (HY000/2005): Unknown MySQL server host 'localhosta' (2)

但是我需要在运行时检查(显然是在尝试连接之后)数据库配置参数是否错误(主机/用户/密码)并将该错误消息回显给调用者。 $this->db->_error_number() 和 $this->db->_error_message() 没有给我那个错误消息。有任何想法吗?希望我足够清楚。谢谢。

编辑:

这是我的数据库配置:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = FALSE;
$db['default']['stricton'] = FALSE;

但它被合并到我的 Controller 中的真实数据库配置数组中:

    $this->connected = false;

$this->load->database(array_merge(array(
'hostname' => "localhost",
'username' => "username",
'password' => "password",
'database' => "database",
'dbdriver' => "mysqli",
'dbprefix' => "",
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => "",
'char_set' => "utf8",
'dbcollat' => "utf8_general_ci",
), (array) $json->conn), TRUE);

if ($this->db->initialize() !== FALSE) {
die('Not CONNECTED!');
}

$this->connected = true;

但是我在我的日志中发现这一行的错误

if ($this->db->initialize() !== FALSE) {

ERROR - 2015-04-09 15:47:48 --> Severity: Notice  --> Undefined property: Main::$db /.../.../...

我不知道哪里出了问题。

最佳答案

删除 $this->load->database 的最后一个参数(默认为 FALSE)确实完成了剩下的工作。

这是来 self 的 Controller 的新代码:

$this->connected = false;

$this->load->database(array_merge(array(
'hostname' => "localhost",
'username' => "root",
'password' => "root",
'database' => "automaserv",
'dbdriver' => "mysqli",
'dbprefix' => "",
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => "",
'char_set' => "utf8",
'dbcollat' => "utf8_general_ci",
), (array) $json->conn));

if ($this->db->initialize() === FALSE) {
die('Not CONNECTED!');
}

$this->connected = true;

谢谢。

关于php - CodeIgniter 检查数据库是否错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29546214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com