search
HomeBackend DevelopmentPHP TutorialThinkPHP3.2.3数据库设置新特性_PHP

ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用。

首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括:

代码如下:


/* 数据库设置 */
 'DB_TYPE'               =>  '',     // 数据库类型
 'DB_HOST'               =>  '', // 服务器地址
 'DB_NAME'               =>  '',          // 数据库名
 'DB_USER'               =>  '',      // 用户名
 'DB_PWD'                =>  '',          // 密码
 'DB_PORT'               =>  '',        // 端口
 'DB_PREFIX'             =>  '',    // 数据库表前缀
 'DB_PARAMS'          =>  array(), // 数据库连接参数
 'DB_DEBUG'  =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志
 'DB_LITE'             =>  false,    // 使用数据库Lite模式
 'DB_FIELDS_CACHE'       =>  true,        // 启用字段缓存
 'DB_CHARSET'            =>  'utf8',      // 数据库编码默认采用utf8
 'DB_DEPLOY_TYPE'        =>  0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
 'DB_RW_SEPARATE'        =>  false,       // 数据库读写是否分离 主从式有效
 'DB_MASTER_NUM'         =>  1, // 读写分离后 主服务器数量
 'DB_SLAVE_NO'           =>  '', // 指定从服务器序号

相对3.2.2版本来说,取消了如下设置参数:

代码如下:


'DB_FIELDTYPE_CHECK' // 3.2.3强制进行字段类型检测了
 'DB_SQL_BUILD_CACHE' // 3.2.3取消了SQL创建缓存
 'DB_SQL_BUILD_QUEUE' // 3.2.3取消了SQL创建缓存
 'DB_SQL_BUILD_LENGTH' // 3.2.3取消了SQL创建缓存
 'DB_SQL_LOG' // 由新增的DB_DEBUG参数取代
 'DB_BIND_PARAM' // 新版采用PDO 自动参数绑定 无需设置

新增的数据库设置参数包括:

代码如下:


'DB_DEBUG'  //用于开启数据库调试模式,开启后即可记录SQL日志
 'DB_LITE' // 是否采用数据库Lite模式连接 开启后只能使用原生SQL查询

3.2.2版本数据库的调试模式和项目的调试模式(由APP_DEBUG常量定义)是绑定的 ,3.2.3版本开始数据库的调试模式是独立设置(由DB_DEBUG参数设置)的。

DB_TYPE参数为数据库类型设置,目前支持的驱动包括mysql/sqlite/oracle/pgsql/sqlsrv/firebird(其他的数据库类型需要增加驱动),设置如下:
'DB_TYPE'=>'mysql', // 不再支持设置为PDO 也不再区分mysql和mysqli
复制代码
数据库的连接信息,主要包括下面参数:

代码如下:


'DB_HOST'               =>  '', // 服务器地址 采用IP地址
 'DB_NAME'               =>  '',          // 数据库名
 'DB_USER'               =>  '',      // 用户名
 'DB_PWD'                =>  '',          // 密码
 'DB_PORT'               =>  '',        // 端口 留空则取默认端口
 'DB_CHARSET'            =>  '',      // 数据库编码

以上设置参数会在实例化PDO的时候自动转换为PDO的连接参数传入。

DB_DSN参数一般无需设置,系统的数据库驱动会进行默认设置,如果需要调整,请遵循PDO的相关数据库连接的DSN设置进行设置。

DB_PARAMS用于设置数据库的连接参数,会传入PDO实例化的第四个参数。

下面是一个典型的数据库全局设置:

代码如下:


'DB_TYPE'               =>  'mysql',     // 数据库类型
 'DB_HOST'               =>  '192.168.1.10', // 服务器地址
 'DB_NAME'               =>  'thinkphp',          // 数据库名
 'DB_USER'               =>  'root',      // 用户名
 'DB_PWD'                =>  '1234',          // 密码
 'DB_PORT'               =>  '3306',        // 端口
 'DB_PREFIX'             =>  'think_',    // 数据库表前缀
 'DB_CHARSET'            =>  'utf8',      // 数据库编码
 'DB_DEBUG'  =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志

如果在模型类中设置单独的数据库连接信息connection属性,可以使用下面的数组或者字符串方式:

代码如下:


//在模型里单独设置数据库连接信息
 namespace Home\Model;
 use Think\Model;
 class UserModel extends Model{
 // 采用数组方式定义
    protected $connection = array(
        'db_type'  => 'mysql',
        'db_user'  => 'root',
        'db_pwd'   => '1234',
        'db_host'  => '192.168.1.10',
        'db_port'  => '3306',
        'db_name'  => 'thinkphp',
        'db_charset' =>    'utf8',
    );
 }

注意:在模型中设置的数据库连接设置参数采用全局配置的小写名。

或者采用字符串方式定义,格式为:
数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
例如:

代码如下:


//在模型里单独设置数据库连接信息
 namespace Home\Model;
 use Think\Model;
 class UserModel extends Model{
    // 使用字符串方式定义
    protected $connection = 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8';
 }

也可以通过配置文件设置,例如:

代码如下:


//数据库配置1
 'DB_CONFIG1' => array(
    'db_type'  => 'mysql',
    'db_user'  => 'root',
    'db_pwd'   => '1234',
    'db_host'  => '192.168.1.10',
    'db_port'  => '3306',
    'db_name'  => 'thinkphp',
    'db_charset'=>    'utf8',
 ),
 //数据库配置2
 'DB_CONFIG2' => 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8';

然后在模型里面定义:

代码如下:


//在模型里单独设置数据库连接信息
 namespace Home\Model;
 use Think\Model;
 class UserModel extends Model{
    //调用配置文件中的数据库配置1
    protected $connection = 'DB_CONFIG1';
    // 或者
    protected $connection = 'DB_CONFIG2';
 }

除了在模型定义的时候指定数据库连接信息外,我们还可以在实例化的时候指定数据库连接信息,如果采用的是M方法实例化模型的话,也可以支持传入不同的数据库连接信息,例如:

代码如下:


$User = M('User','other_','mysql://root:1234@192.168.1.10/demo#utf8');

表示实例化User模型,连接的是demo数据库的other_user表,采用的连接信息是第三个参数配置的。
如果我们在项目配置文件中已经配置了DB_CONFIG2的话,也可以采用:
$User = M('User','other_','DB_CONFIG2');

以上就是本文的全部内容了,希望大家能够喜欢。

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP in Action: Real-World Examples and ApplicationsPHP in Action: Real-World Examples and ApplicationsApr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP: Creating Interactive Web Content with EasePHP: Creating Interactive Web Content with EaseApr 14, 2025 am 12:15 AM

PHP makes it easy to create interactive web content. 1) Dynamically generate content by embedding HTML and display it in real time based on user input or database data. 2) Process form submission and generate dynamic output to ensure that htmlspecialchars is used to prevent XSS. 3) Use MySQL to create a user registration system, and use password_hash and preprocessing statements to enhance security. Mastering these techniques will improve the efficiency of web development.

PHP and Python: Comparing Two Popular Programming LanguagesPHP and Python: Comparing Two Popular Programming LanguagesApr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

The Enduring Relevance of PHP: Is It Still Alive?The Enduring Relevance of PHP: Is It Still Alive?Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP's Current Status: A Look at Web Development TrendsPHP's Current Status: A Look at Web Development TrendsApr 13, 2025 am 12:20 AM

PHP remains important in modern web development, especially in content management and e-commerce platforms. 1) PHP has a rich ecosystem and strong framework support, such as Laravel and Symfony. 2) Performance optimization can be achieved through OPcache and Nginx. 3) PHP8.0 introduces JIT compiler to improve performance. 4) Cloud-native applications are deployed through Docker and Kubernetes to improve flexibility and scalability.

PHP vs. Other Languages: A ComparisonPHP vs. Other Languages: A ComparisonApr 13, 2025 am 12:19 AM

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP vs. Python: Core Features and FunctionalityPHP vs. Python: Core Features and FunctionalityApr 13, 2025 am 12:16 AM

PHP and Python each have their own advantages and are suitable for different scenarios. 1.PHP is suitable for web development and provides built-in web servers and rich function libraries. 2. Python is suitable for data science and machine learning, with concise syntax and a powerful standard library. When choosing, it should be decided based on project requirements.

PHP: A Key Language for Web DevelopmentPHP: A Key Language for Web DevelopmentApr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment