Thinkphp5 Db类静态方法connect()

Db类的静态方法connect()
静态方法:指不需要实例化对象,直接用类调用的方法;
功能:完成数据库初始化,并取得数据库实例;
备注:该方法为静态方法,可被该类所有实例(对象)所共享;

连接方法一:
   字符串做为参数
   /**
     * 测试访问数据库
     */
    public function testdb()
    {
        //数据库连接配置字符串
        $dbConfig = 'mysql://root:root@localhost:3306/wlzd#utf8';

        //将配置字符串做为connect()的参数传入
        $result = Db::connect($dbConfig)   //创建数据库连接
            ->table('wlzd_article')       //选择数据表
            ->select();                //输出结果集
        dump($result);
        exit;
    }

连接方法二:
   数组作为参数
   /**
     * 测试访问数据库
     */
    public function testdb()
    {
        //设置数据库配置参数数组
        $dbConfig = [
            // 数据库类型 
            'type' => 'mysql',
            // 数据库连接DSN配置 
            'dsn' => '',
            // 服务器地址 
            'hostname' => 'localhost',
            // 数据库名 
            'database' => 'wlzd',
            // 数据库用户名 
            'username' => 'root',
            // 数据库密码 
            'password' => 'root',
            // 数据库连接端口 
            'hostport' => '3306',
            // 数据库连接参数 
            'params' => [],
            // 数据库编码默认采用utf8 
            'charset' => 'utf8',
            // 数据库表前缀 
            'prefix' => 'wlzd_',
        ];

        //将配置数组做为connect()的参数传入
        $result = Db::connect($dbConfig)   //创建数据库连接
            ->name('article')     //选择数据表
            ->select();           //输出结果集

        //以二维数据方式返回结果集      
        dump($result);
        exit;
    }

总结:
    1、字符串方式配置:只可设置必须的连接信息,简洁、灵活。
    2、数组方式配置:可以设置更多的信息,如表前缀等;

连接方法三:
$db_connect = mysql_connect('localhost', 'root', 'root');//连接数据库
mysql_query("set names 'utf8'"); //数据库编码格式
mysql_select_db('wlzd', $db_connect);//数据库名

$result = mysql_query('select from wlzd_article');
$row = mysql_fetch_row($result);
dump($row);
exit;

连接方法四:
if (!function_exists('db')) {
   /**
     * 实例化数据库类
     * @param string $name 操作的数据表名称(不含前缀)
     * @param array|string $config 数据库配置参数
     * @param bool $force 是否强制重新连接
     * return \think\db\Query
     */
     function db($name = '', $config = [], $force = false)
     {
          return Db::connect($config, $force)->name($name);
     }
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Back To Top

鄂ICP备17008157号-1