thinkphp 框架数据库切换实现方法分析_php实例

来源:脚本之家  责任编辑:小易  

/在User模型中启动事务$User->startTrans()/进行相关的业务逻辑操作$Info=M("Info");实例化Info对象$Info->save($User);保存用户信息if(操作成功){/提交事务$User->commit()}else{/事务回滚$User->rollback()}www.zgxue.com防采集请勿采集本网。

本文实例讲述了thinkphp 框架数据库切换实现方法。分享给大家供大家参考,具体如下:

数据库配置:

写法不对,你可以吧like直接写在where中 db=M('ThemeCards')->where(\"like '%\".$search.\"%'\")->find();

//数据库配置1'db_config1' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_',],//数据库配置2'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';

按月统计数据,不是很明白,可以举一个确切的例子吗。欢迎追问。

//默认数据库读取数据$test = Db::name("test")->select();//第二个数据库读取数据$test1=Db::connect("DB_Config_1")->name("test")->select();

存进去没转译,读的时候也别转译就行了

application/config.php

getUploadFileinfo方法返回的数组,做循环添加如数据库。循环生成$message对象,并且做想要提交。有问题私信或HI我。

$db1 = [ 'type'=>'mysql', 'hostname'=>'127.0.0.1', 'database'=>'testA', 'username'=>'root', 'password'=>'123456', 'hostport'=>'3306', 'params'=>[], 'charset'=>'utf8', 'prefix'=>'', ], $db2 = [ 'type'=>'mysql', 'hostname'=>'127.0.0.1', atabase'=>'testB', 'username'=>'root', 'password'=>'123456', 'hostport'=>'3306', 'params'=>[], 'charset'=>'utf8', 'prefix'=>'', ], Db::connect('db1')->query('select * from user where age=25');

方法配置

你在common/function.php中写一个处理函数 public function getArea($area){ return$db->where(array('area'=>$area))->getField('value');}然后在你的模版中这样写 php echo getArea($item['

我们可以在调用Db类的时候动态定义连接信息,例如:

Db::connect([ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_',]);

或者使用字符串方式:

Db::connect('mysql://root:1234@127.0.0.1:3306/thinkphp#utf8');

字符串连接的定义格式为:

数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集

注意:字符串方式可能无法定义某些参数,例如前缀和连接参数。

如果我们已经在应用配置文件(注意这里不是数据库配置文件)中配置了额外的数据库连接信息,例如:

//数据库配置1'db_config1' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_',],//数据库配置2'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';

我们可以改成

Db::connect('db_config1');Db::connect('db_config2');

database.php是框架默认的数据库配置,里面写数据库1的信息,新建了个database2.php是放置数据库2的信息。

创建完数据库2之后,在config配置文件里,文件最后引入数据库2的配置信息

$db_con2 = require_once ('database2.php'),'db_con2' => $db_con2,

代码中引用:

选择数据库1的时候,我是用模型查询的直接写SQL语句:

//模型查询$user = new User();$result = $user->where('username', $data['username']) ->where('password', $data['password']) ->find();

或者

User::where('id','1')->find();//普通结构查询Db::table('think_user')->where('id',1)->find();

查询数据库2的信息时,调用普通查询语句:

$list = Db::connect('db_con2')->table('nrf_amf_reg_info')->alias('r')->join('nrf_amf_server s','r.Id = s.nrf_amf_reg_Id','LEFT')->paginate();

或者

$list = Db::connect('db_con2')->name('nrf_disc_record')->paginate();

注:nrf_amf_reg_info和nrf_disc_record为表名

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

database infomastiondb_info=array'h'=>'localhost','u'=>'root','pwd'=>'program','dbname'=>'agency'mysqli=new mysql($db_info);query=$mysqli->query("select*from user_list");while($row=$mysqli->fetch_row($query)){echo$row[1];}内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • thinkphp3.2.3框架动态切换多数据库的方法分析
  • thinkphp5.0框架实现切换数据库的方法分析
  • thinkphp实现多数据库连接的解决方法
  • tp5(thinkphp5)框架数据库db增删改查常见操作总结
  • tp5(thinkphp5)框架实现多数据库查询的方法
  • thinkphp连接数据库及主从数据库的设置教程
  • thinkphp配置连接数据库技巧
  • tp5(thinkphp5)框架连接数据库的方法示例
  • thinkphp连接数据库的方式汇总
  • thinkphp3.2.3数据库设置新特性
  • php安装xdebug/php安装pear/phpunit详解步骤(图)
  • php微信pc二维码登陆的实现思路
  • php中的日期加减方法示例
  • php数字游戏 计算24算法
  • yii2框架视图(view)操作及layout的使用方法分析
  • 使用phpmailer实现邮件发送代码分享
  • php使用icq网关发送手机短信
  • codeigniter发送邮件的方法
  • thinkphp实现生成和校验验证码功能
  • joomla数据库操作示例代码
  • 如何在thinkphp框架中使用数据库的事务操作
  • 如何在thinkphp框架中使用数据库的事务操作
  • ThinkPHP框架实例化数据库后只能调用一个方法
  • 在ThinkPHP框架中,首页为什么读取不了数据库里面的数据?
  • 我用thinkphp框架,用like查询数据库怎么不好使啊,代码哪里出错了!
  • thinkphp框架,mysql数据库,求教按月查询写法,急,在线等~~!!
  • 转义文本 数据库 php 我用的是thinkphp框架
  • php 在thinkphp框架内的一些关于写进数据库的问题,求解答
  • thinkphp框架,我想点击一个字段area是1的就显示数据库中有这值的数据,点击为2的时候也是一样
  • Thinkphp框架下,把表单传递过来的多数据循环写进数据库,求解答?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php实例thinkphp入门教程thinkphp模板操作技巧总结thinkphp常用方法总结codeigniter入门教程ci(codeigniter)框架进阶教程zend framework框架入门教程php模板技术总结thinkphp3.2.3框架动态切换多数据库的方法分析thinkphp5.0框架实现切换数据库的方法分析thinkphp实现多数据库连接的解决方法tp5(thinkphp5)框架数据库db增删改查常见操作总结tp5(thinkphp5)框架实现多数据库查询的方法thinkphp连接数据库及主从数据库的设置教程thinkphp配置连接数据库技巧tp5(thinkphp5)框架连接数据库的方法示例thinkphp连接数据库的方式汇总thinkphp3.2.3数据库设置新特性php安装xdebug/php安装pear/phpunit详解步骤(图)php微信pc二维码登陆的实现思路php中的日期加减方法示例php数字游戏 计算24算法yii2框架视图(view)操作及layout的使用方法分析使用phpmailer实现邮件发送代码分享php使用icq网关发送手机短信codeigniter发送邮件的方法thinkphp实现生成和校验验证码功能joomla数据库操作示例代码php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php删除数组中空值的方法介绍php从数组中删除元素的四种方法实完美解决thinkphp验证码出错无法显示的方thinkphp中session用法详解php 计算两个时间段之间交集的天数示例thinkphp多表联合查询的常用方法laravel用户授权系统的使用方法示例php获取本年、本月、本周时间戳和日期格式用php提取中英文词语以及数字的首字母的方php利用事务处理转账问题thinkphp框架实现定时执行任务的两种方法codeigniter使用smtp服务发送html邮件的方
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved