精华内容
下载资源
问答
  • ThinkPhp利用swoole创建数据库连接池,优化数据读取,减少请求消耗!
  • 基于tp5的swoole支持,对th5的connection进行改造,使用Swoole\Coroutine\MySQL重写了基于swoole的PDO接口,实现了mysql的数据库连接池,本地测试可用。使用时,替换thinkphp/library/think/db/Connection.php,并...
  • 主要介绍了tp5(thinkPHP5)框架连接数据库的方法,结合实例形式较为详细的分析了基于thinkPHP5框架连接数据库的相关配置、数据读取、模板渲染等操作技巧,需要的朋友可以参考下
  • *数据库连接方式 *1.全局配置 *2.动态配置 *3.DSN连接:数据库类型://用户名:密码@数据库地址:端口号/数据库名#字符集 */ classDemo4 { publicfunctionconn1() { returnDb::table('cash_channel') ...

    <?php

     

    namespace app\index\controller;

     

    use think\Db;

     

    /**

     * 数据库连接方式

     * 1.全局配置

     * 2.动态配置

     * 3.DSN连接:数据库类型://用户名:密码@数据库地址:端口号/数据库名#字符集

     */

    class Demo4

    {

        public function conn1()

        {

            return Db::table('cash_channel')

                ->where('id', 1)

                ->value('title');

        }

     

        public function conn2()

        {

            return Db::connect([

                'type'=>'mysql',

                'hostname'=>'127.0.0.1',

                'database'=>'apifaka',

                'username'=>'faka',

                'password'=>'123456'

            ])

                ->table('cash_channel')

                ->where('id', 2)

                ->value('title');

        }

     

        public function conn3(){

            $dsn='mysql://faka:123456@127.0.0.1:3306/apifaka#utf8';

            return Db::connect($dsn)

            ->table('cash_channel')

            ->where('id', 3)

            ->value('title');

        }

    }

     

    展开全文
  • 上节课我们一起探究了tp5框架的基本布局。...连接数据库连接数据库,是整个过程中最简单的一步,我们只要把数据库的地址和密码输入就可以了,那么从哪里输入呢。我们可以查阅上节课给到大家的框架目录结构,在“ap...

    上节课我们一起探究了tp5框架的基本布局。通过第一节课的学习,我们可以自己建立一个完整的前端网站了,但这时的网站只能用来展示固定信息,没有连接数据库,也就没有了功能。

    今天我们就一起来探究一下,tp5框架是如何连接数据库的,以及一些基础的操作。

    连接数据库

    连接数据库,是整个过程中最简单的一步,我们只要把数据库的地址和密码输入就可以了,那么从哪里输入呢。我们可以查阅上节课给到大家的框架目录结构,在“app/home”目录中的“database.php”:

    将这几处修改为自己的地址信息:

    如果不知道自己的数据库相关信息,大家可以点击这个“字”来查询。

    或是通过这种方式进行查询。

    进入到这个路径里就可以看到你的数据库信息啦~

    修改好之后,数据库就连接好了。。

    是的,连接好了。。接好了。。好了。。了。。

    就这么简单。。

    接下来。。

    我们测试一下~

    我们还是来到我们的controller层,在我们原来的方法中加入数据库查询语句,写好后是这样的:

    先进行测试~

    额。。是的,,什么也没有,如果不是写了这句话,我都以为我加载出错了。但虽然什么也没有,不过有一件事值得开心,那就是,没有报错啊!!那是不是说明数据库连接成功了呢~

    我们继续往下测试,我们直接把这句话赋变量,再打印出来。

    看看结果:

    报错了,先不要急着哭唧唧,来看看它报了什么错:

    我们可以看到,报错是在22行,也就是打印出了错,我们知道,echo只能打印字符串和数字,这里报错说明这个变量不是字符串,而它的提示也是这个意思,array转换为string出了错,那么array(数组)如何打印呢。

    这里我们要用var_dump()方法打印:

    看看效果:

    可以看到我们已经成功的获取到了数据库的一条信息~

    成功之后我们好好审视一下这个功能是如何实现的:

    首先,要先引入db类:

    这是tp5框架实现对数据库增删改查操作的一个类,我们的查询功能正是基于此,引入之后就要用相应的语法写我们需要的语句了。

    而执行具体操作的这句话,我们要注意他的语法:Db::table('test_yan')->where('username','1')->find();

    Table后中的括号填写的当然就是表名啦;where后面就是定位用的,逗号前面写字段名,后面写具体值;最后的find说明了这是一句查询语句,括号里面可以填写你想查的字段,而不填写就代表查询整条语句~

    那么今天的功能就达到了,我们可以在我们的项目中通过db类连接数据库,但我们今天所写的并不是规范的数据框连接。规范的连接应在model层中进行,所以下节课我们将一起学习规范的写法、以及探究对数据库的“增”、“删”、“改”、“查”四大操作~

    展开全文
  • 上面的方式会使用同一个数据库连接,第二个参数为数据库的连接参数,留空表示采用数据库配置文件的配置。 版本 调整功能 5.0.9 db助手函数默认不再强制重新连接 使用Query对象或闭包查询 或者使用查询对象进行查询,...

    查询数据

    基本查询

    查询一个数据使用:

    //table方法必须指定完整的数据表名

    Db::table('think_user')->where('id',1)->find();

    注意:需要引入命名空间  use think\Db;

    find 方法查询结果不存在,返回 null

    查询数据集使用:

    Db::table('think_user')->where('status',1)->select();

    select 方法查询结果不存在,返回空数组

    如果设置了数据表前缀参数的话,可以使用

    Db::name('user')->where('id',1)->find();

    Db::name('user')->where('status',1)->select();

    如果你的数据表没有使用表前缀功能,那么name和table方法的一样的效果。

    在find和select方法之前可以使用所有的链式操作方法。

    默认情况下,find和select方法返回的都是数组。

    助手函数

    系统提供了一个db助手函数,可以更方便的查询:

    db('user')->where('id',1)-find();

    db('user')->wehre('status',1)->select();

    注意:使用db助手函数默认每次都会重新连接数据库,而使用Db::name或者Db::table方法的话都是单例的。db函数如果需要采用相同的链接,可以传入第三个参数,例如:

    db('user',[],false)->where('id',1)->find();

    db('user',[],false)->where('status',1)->select();

    上面的方式会使用同一个数据库连接,第二个参数为数据库的连接参数,留空表示采用数据库配置文件的配置。

    版本

    调整功能

    5.0.9

    db助手函数默认不再强制重新连接

    使用Query对象或闭包查询

    或者使用查询对象进行查询,例如:

    $query = new\think\db\Query();$query -> table('think_user') -> where('status',1);

    Db::find($query);

    Db::select($query);

    或者直接使用闭包函数查询,例如:

    Db::select(function($query)){$query->table('think_user')->where('status',1);

    });

    值和列查询

    查询某个字段的值可以使用

    //返回某个字段的值

    Db::table('think_user') -> where('id',1) -> value('name');

    value 方法查询结果不存在,返回 null

    查询某一列的值可以用

    //返回数组

    Db::table('think_user') -> where('status',1) -> column('name');//指定索引

    Db::table('think_user') -> where('status',1) -> column('name','id');

    Db::table('think_user') -> where('status',1) -> column('id, name'); //同tp3的getField

    column 方法查询结果不存在,返回空数组

    数据集分批处理

    如果你需要处理成千上百条数据库记录,可以考虑使用chunk方法,该方法一次获取结果集的一小块,然后填充每一小块数据到要处理的闭包,该方法在编写处理大量数据库记录的时候非常有用.

    比如,我们可以全部用户表数据进行分批处理,每次处理100个用户:

    Db::table('think_user') -> chunk(100, function($users) {foreach($users as $user) {//}

    });//或者交给回调方法myUserIterator处理

    Db::table('think_user') -> chunk(100,'myUserIterator');

    你可以通过从闭包函数中返回false来中止对数据集的处理:

    Db::table('think_user') -> chunk(100, function($users) {//处理结果集...

    return false;

    })

    也支持在chunk方法之前调用其他的查询方法,例如:

    Db::table('think_user') -> where('score', '>', 80) -> chunk(100, function($users) {foreach ($users as $user){//}

    });

    chunk方法的处理默认是根据主键查询,支持指定字段,例如:

    Db::table('think_user')->chunk(100, function($users) {//处理结果集...

    return false;

    }, 'create_time');

    V5.0.11版本开始,chunk方法支持指定处理数据的顺序。

    Db::table('think_user')->chunk(100, function($users) {//处理结果集...

    return false;

    }, 'create_time', 'desc');

    JSON类型数据查询(mysql V5.0.1)

    //查询JSON类型字段 (info字段为json类型)

    Db::table('think_user')->where('info$.email','thinkphp@qq.com')->find();

    展开全文
  • tp5 的config配置文件中对db2(项目本身有一个数据库,为了连接连接其他数据库)进行配置 'db2' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '39.100.35.87', // 数据库名 ...

    tp5 的config配置文件中对db2(项目本身有一个数据库,为了连接连接其他数据库)进行配置

    'db2'   =>  [
        // 数据库类型
        'type'     => 'mysql',
        // 服务器地址
        'hostname' => '39.100.35.87',
        // 数据库名
        'database' => 'sj',
        // 数据库用户名
        'username' => 'sj',
        // 数据库密码
        'password' => 'YTlkZTAxMjBiMWRlYTU0YjMwNWQ2ZWNj',
        // 数据库连接端口
        'hostport' => '3306',
        // 数据库连接参数
        'params'   => [],
        // 数据库编码默认采用utf8
        'charset'  => 'utf8',
        // 数据库表前缀
        'prefix'   => '',
    ],

    以下操作就是原生连接数据库并对其查询的过程

    public function getNewList($page=1,$num=6)
    {
        $start=($page-1)*$num;
    
        $db = Db::connect('db2');//获取数据库对象然后再操作
        $getNewList= $db->query("select * from hz_ada order by id asc limit $start,$num");
        $total=$db->query("select count(*) from hz_ada");
        $count=$total[0]["count(*)"];
        return return_json1($getNewList,$count);
    }
    public function getNewDetail(Request $request)
    {
        $id =$request->param('id');
        $db = Db::connect('db2');//获取数据库对象然后再操作
        $getNewDetail= $db->query("select * from hz_ada where id=$id");
        return return_json($getNewDetail);
    }

    上面众要注意对查询数据的格式转化:

    $total=$db->query("select count(*) from hz_ada");

    $count=$total[0]["count(*)"];

     

    展开全文
  • 主要介绍了tp5(thinkPHP5)操作mongoDB数据库的方法,结合实例形式简单分析了mongoDB数据库及thinkPHP5连接、查询MongoDB数据库的基本操作技巧,需要的朋友可以参考下
  • 主要介绍了tp5.1 框架数据库常见操作,结合实例形式详细分析了thinkPHP5.1针对数据库的添加、删除、更新、查询相关操作技巧与使用注意事项,需要的朋友可以参考下
  • tp5连接数据库

    千次阅读 2018-12-07 17:29:29
    1、配置文件目录 tp5\application\database.php 通过配置文件来连接。。 也可以通过方法链接 ... // 使用方法配置数据库连接 public function data1 () { $DB = Db::connect([ // 数据库类型 ...
  • tp5 连接数据库

    2021-01-26 22:33:15
    ----------------------------------------//获取数据库实例对象$link = Db::connect();//用实例查询类方法$result = $link->table(‘destoon_ad‘)->select();//输出结果集dump($result);--...
  • tp5-5 连接,操作,调试数据库

    千次阅读 2018-07-12 09:17:45
    模型类定义 当模型操作的时候会自动连接给定的数据库连接,而不是配置文件中设置的默认连接信息1 在 应用配置文件config.php  里添加数组配置 &lt;? 'machine'=&gt; [ // 数据库类型 'type' =&...
  • tp5连接数据库

    2019-08-24 18:26:41
    ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行...如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。 一、配置文件定义 常用的配置...
  • 1、修改TP5框架数据库连接方式为不重新链接。2、不同表连接不同数据库。我们只需要重写db函数即可,至于写在那个函数文件里,就看项目了。推荐写在common.php项目函数公共文件里方法源码如下:...
  • tp连接数据库

    千次阅读 2018-07-04 18:15:19
    连接数据库mysql的全局定义&lt;php? return array('DB_TYPE'=&gt;'mysql', 'DB_HOST'=&gt;'localhost', 'DB_NAME'=&gt;'thinkphp', 'DB_USER'=&gt;'root', 'DB_PWD'=&gt;'12...
  • TP5连接数据库和phpstrom连接数据库(宝塔面板数据库连接)1.编译器:phpstrom框架:TP5服务器面板:宝塔面板2.我遇到的核心问题:数据库、用户名、密码均正确但是无法连接,使用宝塔面板的都知道phpmyadmin的端口号是...
  • tp5实现数据库拷贝

    2021-01-30 11:19:21
    tp5实现数据库拷贝龙行PHP2019-1-720510评论一个数据库拷贝实现功能,还是挺好的backsql拷贝实现类namespace expand;class Baksql {private $config=[];private $handler;private $tables = array();//需要备份的表...
  • tp5 连接多个数据库

    2021-03-17 09:26:03
    'db_config_test' =>...2.连接部分代码: //数据读取 例子 $list = Db::connect('db_config_test')->table('table_name')->select(); 或者 $list = Db::connect('db_config_test')->q...
  • 最近刚好有一个需求,就是使用sqlserver当数据库去开发一个网站,这里就简单介绍一个如何去连接sqlserver数据库,以及一些简单的数据库操作方法,看完这篇之后,你就会知道,其实无论是哪种数据库去开发,其实原理都...
  • tp5连接多个数据库

    千次阅读 2019-02-26 09:20:59
    '127.0.0.1', // // 数据库名 'database' => 'et_check', // 用户名 'username' => 'root', // // 密码 'password' => 'root', // 端口 'hostport' => '3306', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' ...
  • TP5 连接多个数据库

    千次阅读 2019-06-26 17:15:50
    use think\Config; $config = Config::get('database2'); //读取第二个数据库配置 ... //连接数据库 $data = $connect->name('admin')->find(); //对admin 表进行操作 注意: 1、数据库配置文件...
  • 连接数据库 修改在根目录下的*.env文件,... // 默认使用的数据库连接配置 'default' => env('database.driver', 'mysql'), // 自定义时间查询规则 'time_query_rule' => [], // 自动写入时间戳字段 // t
  • tp5 链接多个数据库数据库操作

    千次阅读 2019-08-23 09:23:57
    首先配置application下面的database.php,配置好需要链接的两个数据库 return [ 'content'=>[ 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 ...
  • namespace app\api\model; use think\Model; class BaseModel extends Model { protected $connection = [ // 数据库类型 'type' => 'mysql', // host '...
  • TP5 连接oracle数据库

    2021-05-02 02:55:41
    /** Oracle数据库驱动 */ class Oracle extends Connection (4)开始使用,一般tp项目使用的默认数据库mysql,而可能某个模块需要用到oracle数据库,所以在该模块对应的控制器方法内配置oracle连接。如下: $conn = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,502
精华内容 7,400
关键字:

tp5数据库连接