thikphp 单独php文件怎样操作数据库

 我来答
龙氏风采
2016-12-17 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部
  ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。目前的数据库包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对PDO的支持,如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。
  常用的配置方式是在项目配置文件中添加下面的参数:
  <?php
  //项目配置文件
  return array(
  //数据库配置信息
  'DB_TYPE' => 'mysql', // 数据库类型
  'DB_HOST' => 'localhost', // 服务器地址
  'DB_NAME' => 'thinkphp', // 数据库名
  'DB_USER' => 'root', // 用户名
  'DB_PWD' => '', // 密码
  'DB_PORT' => 3306, // 端口
  'DB_PREFIX' => 'think_', // 数据库表前缀
  //其他项目配置参数
  // ...
  );
  或者采用如下配置
  'DB_DSN' => 'mysql://username:password@localhost:3306/DbName'
  使用DB_DSN方式定义可以简化配置参数,DSN参数格式为:
  数据库类型://用户名:密码@数据库地址:数据库端口/数据库名
  如果两种配置参数同时存在的话,DB_DSN配置参数优先。
  注意:如果要设置分布式数据库,暂时不支持DB_DSN方式配置。1
  如果采用PDO驱动的话,则必须首先配置DB_TYPE 为pdo,然后还需要单独配置其他参数,例如:
  //PDO连接方式
  'DB_TYPE' => 'pdo', // 数据库类型
  'DB_USER' => 'root', // 用户名
  'DB_PWD' => '', // 密码
  'DB_PREFIX' => 'think_', // 数据库表前缀
  'DB_DSN' => 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8'
  注意:PDO方式的DB_DSN配置格式有所区别,根据不同的数据库类型设置有所不同。
  配置文件定义的数据库连接信息一般是系统默认采用的,因为一般一个项目的数据库访问配置是相同的。该方法系统在连接数据库的时候会自动获取,无需手动连接。
  可以对每个项目和不同的分组定义不同的数据库连接信息,如果开启了调试模式的话,还可以在不同的应用状态的配置文件里面定义独立的数据库配置信息。1
  第二种 在模型类里面定义connection属性
  如果在某个模型类里面定义了connection属性的话,则实例化该自定义模型的时候会采用定义的数据库连接信息,而不是配置文件中设置的默认连接信息,通常用于某些数据表位于当前数据库连接之外的其它数据库,例如:
  //在模型里单独设置数据库连接信息
  protected $connection = array(
  'db_type' => 'mysql',
  'db_user' => 'root',
  'db_pwd' => '1234',
  'db_host' => 'localhost',
  'db_port' => '3306',
  'db_name' => 'thinkphp'
  );
  也可以采用DSN方式定义,例如:
  //或者使用DSN定义
  protected $connection = 'mysql://root:1234@localhost:3306/thinkphp';
  如果我们已经在配置文件中配置了额外的数据库连接信息,例如:
  //数据库配置1
  'DB_CONFIG1' => array(
  'db_type' => 'mysql',
  'db_user' => 'root',
  'db_pwd' => '1234',
  'db_host' => 'localhost',
  'db_port' => '3306',
  'db_name' => 'thinkphp'
  ),
  //数据库配置2
  'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp';
  那么,我们可以把模型类的属性定义改为:
  //调用配置文件中的数据库配置1
  protected $connection = 'DB_CONFIG1';
  //调用配置文件中的数据库配置2
  protected $connection = 'DB_CONFIG2';
  如果采用的是M方法实例化模型的话,也可以支持传入不同的数据库连接信息,例如:
  $User = M('User','other_','mysql://root:1234@localhost/demo');
  表示实例化User模型,连接的是demo数据库的other_user表,采用的连接信息是第三个参数配置的。如果我们在项目配置文件中已经配置了DB_CONFIG2的话,也可以采用:
  $User = M('User','other_','DB_CONFIG2');
  如果你的个别数据表没有定义任何前缀的话,可以在前缀参数中传入NULL,例如:
  $User = M('User',Null,'DB_CONFIG2');
  表示实例化User模型,连接的是demo数据库的user表。
  需要注意的是,ThinkPHP的数据库连接的惰性的,所以并不是在实例化的时候就连接数据库,而是在有实际的数据操作的时候才会去连接数据库(额外的情况是,在系统第一次实例化模型的时候,会自动连接数据库获取相关模型类对应的数据表的字段信息)。
桂哥的点滴
2016-12-11 · 关注教育,产品,互联网,个人成长。
桂哥的点滴
采纳数:1042 获赞数:2173

向TA提问 私信TA
展开全部
什么叫做单独php文件?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友01a58b28
2016-12-11 · TA获得超过335个赞
知道小有建树答主
回答量:519
采纳率:0%
帮助的人:345万
展开全部
file_get_contents访问你写的接口地址即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
imba久期
游戏玩家

2016-12-12 · 可能会发布一些技术教程啥的
imba久期
采纳数:105 获赞数:307

向TA提问 私信TA
展开全部
不走thinkphp框架的话就是走普通连接流程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式