数据库同步工具
sqlserver,Mysql数据同步软件

php中CodeIgniter框架主从数据库配置方法

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

本文介绍了PHP框架中CodeIgniter主从数据库的配置方法。与您共享以供参考,如下所示:

称为CI的CodeIgniter是最流行的php MVC框架之一。我谈论的是从实际项目使用中写出一系列实际战斗经验。与其他理论解释文章不同,我将附上实际的战斗过程和代码。

本文将配置多个数据库,使用场景是集群,分布式,数据库读写分离,多个主从互备中只有一个是读写数据库,另一个是只读数据库。

工具/环境:

php开发环境

CodeIgniter

方法/步骤:

在config/database.php中配置其他数据库源,默认为localhost或IP,而writedb为可读可写的数据库。因为主从服务器是写的,所以它们需要通过IP远程调用。我将其配置为:

$ active_group ="默认";

$ active_record = TRUE;

$ db [" default"] [" hostname"] =" localhost";

$ db [" default"] [" username"] =" default_username";

$ db [" default"] [" password"] =" default_password";

$ db [" default"] [" database"] =" default_dbname";

$ 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"] = TRUE;

$ db [" default"] [" stricton"] = FALSE;

$ db [" writedb"] ["主机名"] =" 202.187.194.160";

$ db [" writedb"] ["用户名"] =" writedb_name";

$ db [" writedb"] [" password"] =" writedb_password";

$ db [" writedb"] ["数据库"] =" writedb_db";

$ db [" writedb"] [" dbdriver"] =" mysql";

$ db [" writedb"] [" dbprefix"] ="";

$ db [" writedb"] [" pconnect"] = TRUE;

$ db [" writedb"] [" db_debug"] = TRUE;

$ db [" writedb"] [" cache_on"] = FALSE;

$ db [" writedb"] [" cachedir"] ="";

$ db [" writedb"] [" char_set"] =" utf8";

$ db [" writedb"] [" char_names"] =" utf8";

$ db [" writedb"] [" dbcollat"] =" utf8_general_ci";

$ db [" writedb"] [" swap_pre"] ="";

$ db [" writedb"] [" autoinit"] = TRUE;

$ db [" writedb"] [" stricton"] =否;

M(模型)需要使用模型来配置两个数据源。只需一种配置即可读取。当然,如果仅用于写入,则可以单独配置。

来自我的feedbackmodel.php的反馈示例:

\ lt ;的PHP

class Feedbackmodel扩展CI_Model {

函数__construct(){

父:: __ Construct();

$ this-\\ u> db = $ this-\\ u>加载->数据库("默认",true);

$ this-\\ u> writedb = $ this-\\ u>加载->数据库(" writedb",true);

}

公共功能添加($数据)

{

$ this-\\ u> writedb-\ gt;插入("反馈",$数据);

if($ this-\ gt; writedb-\ gt;受影响的行()== 1){

返回true;

}

返回false;

}

}

? \ gt;

C(Controller)控制器的调用与普通的相同,只要引入了Model,我的示例:

\ lt ;的PHP

类反馈扩展了CI_Controller {

函数__construct(){

父:: __ Construct();

}

函数索引(){

$ this-\\ u>加载->模型(" feedbackmodel");

$ this-\\ u>加载->帮手(" url");

$ data [" name"] = \ quot;反馈";"

$ this-\\ u>加载->查看(" feedbackview",$数据);

}

}

? \ gt;

注意:

①因为它是作为主从互备编写的,所以需要通过IP进行远程调用

②默认是默认值,可以是localhost或IP

对CodeIgniter相关内容有更多兴趣的读者可以查看此站点的主题:” Codeigniter入门教程”,” CI(CodeIgniter)框架高级教程”,” PHP优秀开发框架摘要”,” ThinkPHP入门教程”,” ThinkPHP”通用方法摘要”,” Zend FrameWork框架简介”,” PHP对象编程指南”,” PHP + mysql数据库操作简介”和” PHP通用数据库操作技能摘要”

我希望本文对基于CodeIgniter框架的PHP编程的每个人都将有所帮助。

最近,在使用CI框架时,我使用了CI分页类。我曾经使用前端完整页面调度。这次我只是使用了框架。这是我健忘的头,让我记录一下。

因为页面上有条件筛选表格,所以您要完成的效果是输入条件后,可以在页面跳转后保留输入的条件。考虑一下之后,我的想法如下。

控制器代码

Monitors类扩展了CI_Controller {

公共功能警告(){

$ config = array();

$ config [" per_page"] = 15;//每页显示的数据数

$ current_page = intval($ this-> input-\ gt; get(" per_page"));//获取当前页码

$ status = $ this-\\ u>输入-> get(" filter-status",TRUE);

$ level = $ this-\\ u>输入-> get(" filter-level",TRUE);

$ timestamp = $ this-\>输入-> get(" filter-timestamp",TRUE);

$ all = $ this-\\ u> monitors_m-\\ u> getAllData($ current_page,$ config [" per_page"],$ status,$ timestamp,$ level);

//此处返回的总数和具体数据可以根据自己的情况进行略微修改

$ data [" allevent"] = $ all [" content"];

$ config [" total_rows"] = $ all [" count"];//总数

$ config [" num_links"] = 3;//连接的页数

$ config [" use_page_numbers"] = TRUE;

$ config [" page_query_strings"] = TRUE;//按键配置

$ config [" base_url"] = base_url()。 " index.php/监视器/警告?" \ filter-status ="。$状态。" \ filter-level ="。$ level"。 \ filter-timestamp ="。$ timestamp;//密钥配置

$ this-\\ u>加载->库("分页");//加载ci分页类

$ this-\\ u>分页-初始化($ config);

$ data [" page"] = $ this-\\ ugt26;分页-create_links();//关键代码

$ this-\\ u>加载->查看(" monitors_v",$数据);

}

关键配置参数

$ config [’page_query_string"]

如果设置为true,则该网址为” index.php/monitors/warning?per_page = 20″,就像这样

[注意]” per_page”是默认情况下传递的查询字符串,但是您也可以使用$ config [‘query_string_segment”] =”您的字符串”进行配置

在我的计划中,将TRUE设置为默认值,无论如何。

$ config [‘base_url"]

最初,将其设置为以下情况时,可以在特定页面上执行条件过滤,但是由于跳转后的刷新问题,该条件不再存在。

$ config [" base_url"] = base_url()。 " index.php/监视器/警告;

只需使用以下方法,吼吼吼吼

$ status = $ this-\\ u>输入-> get(" filter-status",TRUE);

$ level = $ this-\\ u>输入-> get(" filter-level",TRUE);

$ timestamp = $ this-\>输入-> get(" filter-timestamp",TRUE);

$ config [" base_url"] = base_url()。 " index.php/监视器/警告?" \ filter-status ="。$状态。" \ filter-level ="。$ level"。 \ filter-timestamp ="。$ timestamp;//密钥配置

查看页面代码

在一个句子中,在需要放置分页元素的位置添加这样的句子。此处的$ page变量存储在控制器中

\ lt ; PHP的回声$页面? \ gt;

设置分页样式

这是引导程序样式

$ config [" first_link"] =" \ lt;";//主页

$ config [" prev_link"] =" \ lt;";//上一个

$ config [" next_link"] =" \ gt;";//下一页

$ config [" last_link"] =" \ gt;";//最后一页

$ config [" full_tag_open"] =" \ lt; ul class ="分页pagination-split" \ gt;";

$ config [" full_tag_close"] =" \\ uul \ gt;";

$ config [" first_tag_open"] =" \\ li \\ li \\ gt;";//第一个链接的开始标记。

$ config [" first_tag_close"] =" \\/li \\ gt;";//第一个链接的结束标记。

$ config [" next_tag_open"] =" \\ li \\ li \\ u; gt;";//下一页链接的开始标记。

$ config [" next_tag_close"] =" \\/li \\ gt;";//下一页链接的结束标记。

$ config [" prev_tag_open"] =" \\ li \\ li \\ u; gt;";//前一页链接的开始标记。

$ config [" prev_tag_close"] =" \\\\ li \\ gt;" ;;//前一页链接的结束标记。

$ config [" cur_tag_open"] =" \ lt; li class =" active" \ gt; \ lt; a \ gt;";

$ config [" cur_tag_close"] =" \\ a \ gt; \ lt;/li \ gt;";//当前页面链接的结束标记。

$ config [" num_tag_open"] =" \\ li \\ li \ gt;";//数字链接的开始标记。

$ config [" num_tag_close"] =" \\/li \\ gt;";//数字链接的结束标记。

上面是编辑器向您介绍的PHP CodeIgniter分页示例和多条件查询解决方案。希望对您有帮助。如果您有任何疑问,请给我留言。也非常感谢每个人对Code Farm House网站的支持!

上面总结了这次与您共享的有关Java的所有知识点。您还可以在下面的相关文章中找到相关文章,以进行进一步研究。感谢您的阅读和支持。

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » php中CodeIgniter框架主从数据库配置方法

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们