在项目配置文件里面定义
return array(
'DB_TYPE'=> 'mysql',
'DB_HOST'=> 'localhost',
'DB_NAME'=>'thinkphp',
'DB_USER'=>'root',
'DB_PWD'=>'',
'DB_PORT'=>'3306',
'DB_PREFIX'=>'think_',
// 其他项目配置参数………
);
系统推荐使用该种方式,因为一般一个项目的数据库访问配置是相同的。该方法系统在连接数据库的时候会自动获取,无需手动连接。
可以对每个项目定义不同的数据库连接信息,还可以在调试配置文件(Conf/debugphp)里面定义调试数据库的配置信息,如果在项目配置文件和调试模式配置文件里面同时定义了数据库连接信息,那么在调试模式下面后者生效,部署模式下面前者生效。希望能帮到你,我还要自己在后盾人平台学习呢,(ฅ◑ω◑ฅ)
thinkphp 同时连接两个数据库的配置方法如下:
1、在Dbclassphp脚本文件里面的类增加一个魔术方法__get(),写法如下:
public function __get($propertyName){ return $this->$propertyName;
}
这个方法是用来访问类中protected $config成员属性用的。有的人可能会说,直接把protected改成public岂不是更好。这样只解决了基类的问题,假如,子类也同样进行了受保护,那要你更改更多的文件,这是我们做IT程序员非常不愿意看到的事情。
2、在Modelclassphp中的getTableName()方法更改如下:
$tablepre = $this->db->config['tablepre'];if(empty($this->trueTableName)) {
$tableName= empty($tablepre) $this->tablePrefix : $tablepre;
if(!empty($this->tableName)) {
$tableName = $this->tableName;
}
else
{
$tableName = parse_name($this->name);
}
$this->trueTableName = strtolower($tableName);
}
return (!empty($this->dbName)$this->dbName'':'')$this->
trueTableName;这样就完成了多库自由切换时,导致的表前缀问题。
/面向对象PDO连接方式/
'DB_TYPE' => 'PDO', // 数据库类型
'DB_DSN' => 'mysql:host=localhost;dbname=master', // DSN连接。
'DB_USER' => 'root', // 数据库用户名
'DB_PWD' => '123456', // 数据库密码
'DB_PORT' => '3306', // 数据库端口
'DB_PREFIX' => 'g_', // 数据表前缀
'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8
tp是ThinkPHP框架的英文缩写,ThinkPHP是为了方便企业级别应用开发和敏捷WEB应用开发而设计的。
很多人在计算机应用开发网站上,经常会看到tp这两个字母,究竟这两个字母代表着什么含义?它都有哪些特点和功能,下面让我们共同去了解吧。
详细内容 01ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。
02遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
03ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP50以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
04ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。
05ThinkPHP框架的文件全部采用UTF-8编码格式,UTF-8的支持和自动输出编码转换的功能让页面表现更加灵活。您可以配置输出的页面编码格式,如gb2312等(默认采用UTF-8输出)。
根据官方解释,之所以不支持oracle,是因为还没实现基于oracle下的标准model方法。实际你要用,也是可以的,开启下启用oracle的开关,具体我记不得啦,应该就在model里。
开启后,需要注意的是,如上面所述,你不能使用model里部分通用的方法,如limit。所以需要在写程序的时候特别注意。
008 数据库的数据查询
本节课我们来了解一下数据库的数据查询方式,单数据、数据集和其它查询。
一单数据查询
1 Db::table()中table必须指定完整数据表(包括前缀);
2 如果希望只查询一条数据,可以使用find()方法,需指定where条件;
Db::table('tp_user')->where('id', 27)->find()
3 Db::getLastSql()方法,可以得到最近一条SQL查询的原生语句;
SELECT FROM `tp_user` LIMIT 1
4 没有查询到任何值,则返回null;
5 使用findOrFail()方法同样可以查询一条数据,在没有数据时抛出一个异常;
Db::table('tp_user')->where('id', 1)->findOrFail()
6 使用findOrEmpty()方法也可以查询一条数据,但在没有数据时返回一个空数组;
7 Db::table('tp_user')->where('id', 1)->findOrEmpty();
二数据集查询
1 想要获取多列数据,可以使用select()方法;
Db::table('tp_user')->select(); SELECT FROM `tp_user`
2 多列数据在查询不到任何数据时返回空数组,使用selectOrFail()抛出异常; Db::table('tp_user')->where('id', 1)->selectOrFail();
3 在select()方法后再使用toArray()方法,可以将数据集对象转化为数组;
4 当在数据库配置文件中设置了前缀,那么我们可以使用name()方法忽略前缀; Db::name('user')->select();
三其它查询
1 通过value()方法,可以查询指定字段的值(单个),没有数据返回null;
Db::name('user')->where('id', 27)->value('username');
$user = Db::table('tp_user')->select()->toArray(); dump($user);
2 通过colunm()方法,可以查询指定列的值(多个),没有数据返回空数组; Db::name('user')->column('username');
3 可以指定id作为列值的索引;
4 如果处理的数据量巨大,成百上千那种,一次性读取有可能会导致内存开销过大;
5 为了避免内存处理太多数据出错,可以使用chunk()方法分批处理数据;
6 比如,每次只处理100条,处理完毕后,再读取100条继续处理;
7 可以利用游标查询功能,可以大幅度减少海量数据的内存开销,它利用了PHP生成器特性。每次查询只读一行,然后再读取时,自动定位到下一行继续读取;
Db::name('user')->column('username', 'id');
Db::table('tp_user')->chunk(3, function($users) { foreach ($users as $user) {
dump($user);
}
echo 1; });
$cursor = Db::table('tp_user')->cursor(); foreach($cursor as $user){
dump($user);
}
thinkphp联链接数据库在
/common/conf/congifphp里设置相应的参数
tp32如下设置
对数据库 *** 作如下:
public function test(){//查询单条数据
$result=M("表名")->where("条件")->find();
//查询多条数据
$result=M("表名")->where("条件")->find();
//删除数据
$result=M("表名")->where("条件")->del();
//修改数数据
$data['字段名称']="值";
$result=M("表名")->where("条件")->save($data);
//新增数据
$data['字段名称']="值";
$result=M("表名")->add($data);
}
tp5数据库配置
tp5数据库配置application/datebasephp
以上就是关于thinkphp怎么连接数据库全部的内容,包括:thinkphp怎么连接数据库、怎么样配置thinkphp 与本地mysql和sql server同时连接俩个数据库、tp是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)