Home Database Mysql Tutorial php-mysql扩展的mysql

php-mysql扩展的mysql

Jun 07, 2016 pm 03:20 PM
linux mysql Expand Enter

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 今天我们来探讨一下php-mysql扩展的mysql_connect/mysql_pconnect比较 item mysql_connect mysql_pconnect 函数原型 resource mysql_connect($host_port, $user, $passwd, $newlink, $client_flags);

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  今天我们来探讨一下php-mysql扩展的mysql_connect/mysql_pconnect比较

item

mysql_connect

mysql_pconnect

函数原型

resource mysql_connect($host_port, $user, $passwd, $newlink, $client_flags);

第四个参数$newlink标记是否创建新的资源对象

resource mysql_pconnect($host_port, $user, $passwd, $client_flags);

allow_persistent指令

设置此指令使得两个函数行为均和mysql_connect()一致

连接资源对象获取

  1. $host_port, $user, $passwd, $client_flags求哈希值
  2. 在普通资源列表(EG(regular_list))中查找连接对象(已找到并且没有设置$newlink强制创建新连接)
  3. 检查找到的对象是否资源类型
  4. 从查找到的对象中读取连接对象
  5. 将当前获取的连接对象设置为全局默认连接对象
  6. 增加连接对象的引用计数, 设置zval属性返回
  1. $host_port, $user, $passwd, $client_flags求哈希值
  2. 从持久化资源列表(EG(persist_list))中查找连接对象(没有找到)
  3. 检查max_links配置指令限制是否到达
  4. 检查max_persistent配置指令限制是否到达
  5. 分配连接对象(php_mysql_conn)空间
  6. 设置连接对象的基础属性
  7. 初始化驱动层连接对象(mysqlnd/libmysql两种方式)
  8. 设置连接超时时间
  9. 发起驱动层的真实连接请求
  10. 构造持久化列表元素对象, 将新连接对象设置到元素中
  11. 将连接对象更新到持久化列表中
  12. 更新(增加)num_persistent/num_links计数
  13. 注册资源类型返回值
  14. 将当前获取的连接设置为全局默认连接对象
  1. $host_port, $user, $passwd, $client_flags求哈希值
  2. 在普通资源列表(EG(regular_list))中查找连接对象(未找到或设置了$newlink强制创建新连接)
  3. 检查max_links配置指令限制
  4. 分配连接对象(php_mysql_conn)空间
  5. 设置连接对象基础属性
  6. 初始化驱动层连接对象(mysqlnd/libmysql)
  7. 设置连接超时时间
  8. 发起驱动层的真实连接
  9. 将连接对象注册为资源类型返回值
  10. 将连接对象更新到普通资源列表(EG(regualr_list))
  11. 更新num_links计数
  12. 将当前获取的连接对象设置为全局默认连接对象
  1. $host_port, $user, $passwd, $client_flags求哈希值
  2. 从持久化资源列表中查找连接对象(已找到)
  3. 检查查找到的持久化资源的类型是否匹配
  4. 从持久化资源中读取连接对象
  5. 设置连接对象基本属性
  6. 检查服务端是否主动关闭
  7. 如果服务端主动关闭则进行重连
  8. 注册资源类型返回值
  9. 将当前获取的连接设置为全局默认连接对象

regular_list Vs. persistent_list

  1. regular_listpersistent_list两者都是HashTable
  2. 两者都是执行全局环境executor_globals的成员
  3. 两者生命周期不同, regular_listphp_request_shutdown()时被释放, 也就是单个请求处理完成之后释放, persistent_listphp_module_shutdown()的时候调用zend_shutdown()释放, 也就是在整个进程完成执行时释放

php-mysql扩展的mysql

Statement of this Website
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

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 ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to create navicat premium How to create navicat premium Apr 09, 2025 am 07:09 AM

Create a database using Navicat Premium: Connect to the database server and enter the connection parameters. Right-click on the server and select Create Database. Enter the name of the new database and the specified character set and collation. Connect to the new database and create the table in the Object Browser. Right-click on the table and select Insert Data to insert the data.

How to create a new connection to mysql in navicat How to create a new connection to mysql in navicat Apr 09, 2025 am 07:21 AM

You can create a new MySQL connection in Navicat by following the steps: Open the application and select New Connection (Ctrl N). Select "MySQL" as the connection type. Enter the hostname/IP address, port, username, and password. (Optional) Configure advanced options. Save the connection and enter the connection name.

How to connect to local mysql in navicat How to connect to local mysql in navicat Apr 09, 2025 am 07:45 AM

To connect to a local MySQL database using Navicat: Create a connection and set the connection name, host, port, username, and password. Test the connection to make sure the parameters are correct. Save the connection. Select a new connection from the connection list. Double-click the database you want to connect to.

How to connect to databases How to connect to databases Apr 09, 2025 am 06:45 AM

To connect to a database using Navicat, perform the following steps in sequence: Create a connection in Navicat. Enter the host name, port, user name, password, and database name. Adjust advanced settings (optional). Save the connection. Test the connection. Connect to the database. View the database object.

How to import a database in navicat How to import a database in navicat Apr 09, 2025 am 06:27 AM

The steps to import a database in Navicat include: Connect to the database server. Right-click the database name and select Import Wizard. Select the data source type. Specify the data source settings. Select the data file format. Browse and select the data file. Configure import options (table map, character set, data type). Perform import and monitor progress.

How to add columns in SQL graphical tools? How to add columns in SQL graphical tools? Apr 09, 2025 pm 12:54 PM

Add Columns in SQL Graphics Tool: Select the table to which columns you want to add. Right-click and select "Alter Table" or similar options. Defines the properties of the new column (name, data type, length, or whether it is empty). Specifies the default value for the new column, if applicable. Select the appropriate data type to avoid data errors. Use meaningful column names. Consider the performance impact when performing column addition operations on large tables. Always back up the database before the operation to prevent data loss.

What is the difference between syntax for adding columns in different database systems What is the difference between syntax for adding columns in different database systems Apr 09, 2025 pm 02:15 PM

不同数据库系统添加列的语法为:MySQL:ALTER TABLE table_name ADD column_name data_type;PostgreSQL:ALTER TABLE table_name ADD COLUMN column_name data_type;Oracle:ALTER TABLE table_name ADD (column_name data_type);SQL Server:ALTER TABLE table_name ADD column_name data_

How to copy the database in navicat How to copy the database in navicat Apr 09, 2025 am 06:54 AM

Navicat provides two ways to replicate a database: use the Replica Database wizard: select the target server, enter the database name, and specify the replication options. Manual copy: Export the database, and then import the exported files on the target server.

See all articles