【问题标题】:How can I test a database connection with CodeIgniter?如何使用 CodeIgniter 测试数据库连接?
【发布时间】:2011-05-20 01:10:09
【问题描述】:

我正在尝试学习 CodeIgniter,但不幸的是,他们在其 wiki 上列出的许多教程已有数年历史,并且基于其他人的 cmets,不适用于最新版本的 CodeIgniter。

我确实在IBM DeveloperWorks 上找到了一个没有任何负值的 cmets,但我无法让它工作。提交表单之前的一切都很好,但是在我提交之后,我得到一个空白页,并且没有任何内容发送到数据库。

如何在 CodeIgniter 中测试/排除数据库连接故障?我知道我的设置(就主机、数据库名、用户名/密码等而言)是正确的,因为我在一个普通的 PHP 网站上成功使用了它们。

编辑添加:或者,任何人都可以向我指出适用于最新版本的最新初学者教程吗?我不需要 MVC 教程;我熟悉设计模式。我只需要学习 CodeIgniter。

编辑添加database.php文件:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$active_group = "default";
$active_record = TRUE;

//$db['default']['hostname'] = "localhost";
$db['default']'hostname'] = "myHostName.powwebmysql.com";
$db['default']['username'] = "myUserName";
$db['default']['password'] = "myPassword";
$db['default']['database'] = "codeigniter"; //yes, database is called codeigniter
$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";


/* End of file database.php */
/* Location: ./system/application/config/database.php */

编辑:将数据库负载添加到构造函数时出现错误消息:

A PHP Error was encountered
Severity: Notice

Message: Undefined property: Welcome::$load
Filename: controllers/welcome.php

Line Number: 6

第 6 行是 $this->load->database();

【问题讨论】:

  • 听起来您的路径设置不正确...您能给我们看一些代码吗?
  • 我刚刚用 CI 1.72 尝试了 IBM 教程的代码,并且......它工作正常 :-)......
  • @rabidmachine9 - 根据我从教程中收集到的信息,所有连接都在 application/config/database.php 文件中设置。我已经在上面发布了我的,减去了一些细节。
  • 您需要加载数据库,在您的控制器构造函数中添加以下行:$this->load->database();如果存在与数据库相关的问题,它将发出一条消息,表明您的数据库连接存在问题
  • @rabidmachine - 这是有道理的,但在任何看起来像这样的示例代码中都没有。上面的 trix 是如何在没有它的情况下使代码工作的?此外,我将该行添加到教程中显示的控制器构造函数中,但出现错误。有关错误消息,请参阅原始帖子。

标签: codeigniter database-connection


【解决方案1】:

请使用以下代码:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'myUserName';
$db['default']['password'] = 'myPassword';
$db['default']['database'] = 'myDatabaseName';


/** Do not change the below values. Change only if you know what you are doing */
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = "utf8"; 
$db['default']['dbcollat'] = "utf8_unicode_ci";
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$active_group = 'default';
$active_record = TRUE;

【讨论】:

    【解决方案2】:

    【讨论】:

    • 我看到了那些;不幸的是,我在播放视频时遇到了问题。不过,我会继续努力。
    • 我浏览了那些教程,它们很好。事实上,我在这些教程的帮助下学习了 codeigniter。我有很多问题将我的应用程序从本地主机转移到现场,但我逐渐解决了这些问题。
    猜你喜欢
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2013-09-16
    • 1970-01-01
    相关资源
    最近更新 更多