如何使用 CodeIgniter 测试数据库连接?
Posted
技术标签:
【中文标题】如何使用 CodeIgniter 测试数据库连接?【英文标题】:How can I test a database connection with 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 是如何在没有它的情况下使代码工作的?此外,我将该行添加到教程中显示的控制器构造函数中,但出现错误。有关错误消息,请参阅原始帖子。 【参考方案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 初学者教程:
我喜欢 Jeffrey Way 系列视频系列。
http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-1/ http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-2/ http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-3/ http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-4-newsletter-signup/ http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-5-crud/
【讨论】:
我看到了那些;不幸的是,我在播放视频时遇到了问题。不过,我会继续努力。 我浏览了那些教程,它们很好。事实上,我在这些教程的帮助下学习了 codeigniter。我有很多问题将我的应用程序从本地主机转移到现场,但我逐渐解决了这些问题。以上是关于如何使用 CodeIgniter 测试数据库连接?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 mamp 将数据库与 codeigniter 连接
如何将 codeigniter 与 Sql Server 2012 连接?