Skip to content

与具体数据库系统相关的扩展 - mysqli

MySQL增强版扩展, 基于过程和面向对象的接口 支持多种连接方式 tcp/ip, 域名sockets, win命名管不到 localhost 是特殊的命名管道, 你不能使用localhost来打开tcp/ip连接,你必须使用 127.0.0.1来替代

安装/配置

mysqli.allow_persistent 默认 : “1”

PHP_INI_SYSTEM [5.3.0] 开启使用持久化连接 mysqli.max_persistent 默认 : “-1”

PHP_INI_SYSTEM 可以创建的持久化连接的最大数量 mysqli.max_links 默认 : “-1”

PHP_INI_SYSTEM 最大连接数量

mysqli.default_port 默认 : “3306”

PHP_INI_ALL 默认端口

mysqli.default_socket 默认 : Null

PHP_INI_ALL 当连接到本地数据库服务器时如果没有指定其他socket名称,使用的默认socket名称

mysqli.default_host 默认 : Null

PHP_INI_ALL 默认host

mysqli.default_user 默认 : Null

PHP_INI_ALL 用户

mysqli.default_pw 默认 : Null

PHP_INI_ALL 密码 mysqli.reconnect 默认 : “0”

PHP_INI_SYSTEM 连接丢失时是否自动重新连接 mysqli.allow_local_infile 默认 : “1”

PHP_INI_SYSTEM 允许Mysql的Load Data语句访问PHP角度看的本地文件

mysqli.cache_size 默认 : “2000”

PHP_INI_SYSTEM 缓存的大小,仅仅用户 mysqlnd

MySQLi — MySQLi类

属性

int $mysqli->affected_rows ; int mysqli_affected_rows ( mysqli $link )

获取之前mysql操作时候影响的行数 insert, update, replace, delete >0 表明有相应影响的行数 =0 没有相关行 <0 查询错误

string $mysqli->client_info ; string mysqli_get_client_info ( mysqli $link )

返回mysql客户端的库版本. int $mysqli->client_version ; int mysqli_get_client_version ( mysqli $link )

获取mysql客户端信息, 返回现实当前mysql客户端的版本. main_version 10000 + minor_version 100 + sub_version

string $mysqli->connect_errno; int mysqli_connect_errno ( void )

返回上个连接错误调用的错误码

string $mysqli->connect_error; string mysqli_connect_error ( void )

返回上一个连接的错误信息

int $errno; int mysqli_errno ( mysqli $link )

返回最近的mysql函数调用产生的错误代码 array $mysqli->error_list; array mysqli_error_list ( mysqli $link )

返回最近mysql调用的错误的数组 string $mysqli->error; string mysqli_error ( mysqli $link )

以字串形式返回上个错误的字串形式 int $mysqli->field_count; int mysqli_field_count ( mysqli $link )

返回最近的查询中字段的数量

string $mysqli->host_info; string mysqli_get_host_info ( mysqli $link )

返回描述当前连接的信息

string $mysqli->protocol_version; int mysqli_get_proto_info ( mysqli $link )

返回mysql协议版本号

string $mysqli->server_info; string mysqli_get_server_info ( mysqli $link )

服务器信息

int $mysqli->server_version; int mysqli_get_server_version ( mysqli $link )

服务器版本号

string $mysqli->info; string mysqli_info ( mysqli $link )

获取当前执行的查询操作的信息

mixed $mysqli->insert_id; mixed mysqli_insert_id ( mysqli $link )

返回带有自增长的字段的值.如果没有 ai属性, 或者上个操作没有进行insert/update操作,这个函数返回0,

string $mysqli->sqlstate; string mysqli_sqlstate ( mysqli $link )

从之前的Mysql操作中返回 SQLSTATE 错误, 返回上个错误中的包含 sqlstate 错误码的五位字串.

int $mysqli->thread_id; int mysqli_thread_id ( mysqli $link )

返回当前连接的线程ID

int $mysqli->warning_count; int mysqli_warning_count ( mysqli $link )

返回上个查询中的警告的数量, 你也可以使用sql命令 “SHOW WARNINGS [limit row_count]”

方法

bool mysqli::autocommit ( bool $mode ) bool mysqli_autocommit ( mysqli $link , bool $mode )

开启或者关闭数据库的自动提交功能, 这个函数不支持非事务表(myisam/isam)

bool mysqli::change_user ( string $user , string $password , string $database ) bool mysqli_change_user ( mysqli $link , string $user , string $password , string $database )

更换指定数据库连接的用户并且设置数据库, 为了能够正确的连接数据库, 这里的用户名和密码都必须有权限访问指定的数据库, 如果权限问题导致失败的话,当前用户认证将继续保存

string mysqli::character_set_name ( void ) string mysqli_character_set_name ( mysqli $link )

返回当前数据库连接的字符集的名字

bool mysqli::close ( void ) bool mysqli_close ( mysqli $link )

关闭上一个数据库连接

bool mysqli::commit ( void ) bool mysqli_commit ( mysqli $link )

提交一个事务

mysqli mysqli_connect ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] ) mysqli mysqli_connect(...)

打开一个新的数据库连接 - $host 可以使主机名/ ip地址 p: 开启持续连接 - $username - $passwd - $dbname - $port - $socket

bool mysqli::debug ( string $message ) bool mysqli_debug ( string $message )

运行debug操作

void mysqli::disable_reads_from_master ( void )

[5.3.0]

bool mysqli::dump_debug_info ( void ) bool mysqli_dump_debug_info ( mysqli $link )

设计用于超级权限用户执行将调试信息输出到连接相关的mysql服务端日志.

object mysqli::get_charset ( void ) object mysqli_get_charset ( mysqli $link )

返回当前设置字符集对象

string mysqli::get_client_info ( void ) string mysqli_get_client_info ( mysqli $link )

以字串形式返回mysql客户端版本 array mysqli_get_client_stats ( void )

[php5.3+] 返回客户端当前进行的状态信息, 仅仅适用于mysqlnd

bool mysqli::get_connection_stats ( void ) array mysqli_get_connection_stats ( mysqli $link )

[php5.3]获取当前客户端连接的统计信息, 仅仅适用于mysqlnd

mysqli_warning mysqli::get_warnings ( void ) mysqli_warning mysqli_get_warnings ( mysqli $link )

获取 show warnings 的结果

mysqli mysqli::init ( void ) mysqli mysqli_init ( void )

初始化 mysqli, 返回mysqli_real_connect()资源

bool mysqli::kill ( int $processid ) bool mysqli_kill ( mysqli $link , int $processid )

告诉服务器kill掉这个线程

bool mysqli::more_results ( void ) bool mysqli_more_results ( mysqli $link )

检测多重查询中是否有多重结果

bool mysqli::multi_query ( string $query ) bool mysqli_multi_query ( mysqli $link , string $query )

子数据库中执行一个或这个多个查询,使用分号分隔.取回第一个查询的结果, 你可以使用 mysqli_use_result() / mysqli_store_result(), 更多子查询的结果可以使用 mysqli_more_results() / mysqli_next_result() 来获取

bool mysqli::next_result ( void ) bool mysqli_next_result ( mysqli $link )

取回多重查询的下一个结果集合

bool mysqli::options ( int $option , mixed $value ) bool mysqli_options ( mysqli $link , int $option , mixed $value )

设置连接的额外属性, 这个函数可以设置和调用多次, 这个函数在 mysqli_init()后调用,并且在mysqli_real_connect()之前. MYSQLI_OPT_CONNECT_TIMEOUT [5.3.1+] 连接超时时间 (秒) MYSQLI_OPT_LOCAL_INFILE 启用/禁用 LOAD LOCAL INFILE MYSQLI_INIT_COMMAND 初始化之后执行的命令 MYSQLI_READ_DEFAULT_FILE 从指定的配置文件中读取配置,替代my.cnf MYSQLI_READ_DEFAULT_GROUP 从命名的组中读取指定的配置 bool mysqli::ping ( void ) bool mysqli_ping ( mysqli $link )

检测连接是否还在工作, 如果不工作, 并且全局选项 mysqli.reconnect 启用则尝试重连.这个寒素在客户端使用并且可以长时间的保留空闲.来检测服务器是否关闭如果关闭则尝试重连

public int mysqli::poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] ) mysqli_poll(...)

[5.3.0+]检测列表 仅仅适用于mysqlnd mysqli_stmt mysqli::prepare ( string $query )

为单sql语句预处理.并且返回一个 语句处理器.并且在执行查询前绑定参数, 和取回结果之前绑定结果变量

mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

在数据库中执行查询 这里的 select, show, describe, explain 返回一个 Mysqli_result 的对象其他的将返回 true 这个函数等同于 mysqli_store_result/mysqli_use_result + mysqli_real_query

bool mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

建立一个数据库引擎连接 这个函数和 mysqli_connect() 函数不同, 这个函数 需要从 mysqli_init()建立, 可以使用mysqli_options()函数来建立多种选项的链接 $flags MYSQLI_CLIENT_COMPRESS 使用压缩协议 MYSQLI_CLIENT_FOUND_ROWS 返回匹配的行数,而不是影响的行数 MYSQLI_CLIENT_IGNORE_SPACE 允许函数中间保留空白 MYSQLI_CLIENT_INTERACTIVE 超时秒数 MYSQLI_CLIENT_SSL 使用ssl加密

string mysqli::escape_string ( string $escapestr ) string mysqli::real_escape_string ( string $escapestr ) string mysqli_real_escape_string ( mysqli $link , string $escapestr )

基于当前字符集来转义sql字串.

bool mysqli::real_query ( string $query )

执行一个单调数据库查询, 结果可以使用mysqli_store_result, mysqli_use_result检索或存储.为了确定给定的查询是否真的返回一个结果集, 可以查看 mysqli_field_count

public mysqli_result mysqli::reap_async_query ( void ) mysqli_result mysqli_reap_async_query ( mysql $link )

异步查询结果.

public bool mysqli::refresh ( int $options ) int mysqli_refresh ( resource $link , int $options )

[<=5.3.0]刷新表格或者缓存,或者重置服务器信息.

bool mysqli::rollback ( void ) bool mysqli_rollback ( mysqli $link )

回滚当前的事务

int mysqli::rpl_query_type ( string $query )

返回RPL查询类型

bool mysqli::select_db ( string $dbname ) bool mysqli_select_db ( mysqli $link , string $dbname )

选择默认的使用的数据库当执行查询的时候.

bool mysqli::send_query ( string $query )

bool mysqli::set_charset ( string $charset ) bool mysqli_set_charset ( mysqli $link , string $charset )

设置从服务器发送数据的默认的字符集, 这是首要的设置字符集的方法.而不是使用 “SET NAMES ..”

void mysqli_set_local_infile_default ( mysqli $link )

禁用 LOAD DATA INFILE LOCAL

bool mysqli::set_local_infile_handler ( mysqli $link , callable $read_func ) bool mysqli_set_local_infile_handler ( mysqli $link , callable $read_func )

设置调用加载文件处理函数的句柄

bool mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher ) bool mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $ca , string $capath , string $cipher )

用来使用ssl来这只 安全连接, 在调用mysqli_real_connect前调用.这个看书只有在启用了openssl支持之后才可用. 在PHP5.3.3之前. mysqlnd不支持ssl

string mysqli::stat ( void ) string mysqli_stat ( mysqli $link )

获取当前的系统状态

mysqli_stmt mysqli::stmt_init ( void )

初始化一条语句并用于mysqli_stmt_prepare(), 在使用 mysqli_stmt_prepare()之前调用任何mysqli_stmt函数都会失败

mysqli_result mysqli::store_result ( void ) mysqli_result mysqli_store_result ( mysqli $link )

从最后一个查询中传递一个结果集, 这个结果集可以用于 mysqli_data_seek()函数

bool mysqli_thread_safe ( void )

返回是否 ts 模式

mysqli_result mysqli::use_result ( void ) mysqli_result mysqli_use_result ( mysqli $link )

用来初始化取回一个结果集, 使用mysqli_real_query()函数来执行数据库查询.这个函数和 mysqli_store_result()函数在调用查询的时候被取回.

MySQLi_STMT — MySQLi_STMT类

/* 属性 */

int $mysqli_stmt->affected_rows ; int mysqli_stmt_affected_rows ( mysqli_stmt $stmt )

返回影响的行号(insert,udate, delete), 这个函数仅仅在更新表格时候是使用, 为了获取select的行数,使用 mysqli_stmt_num_rows()

int $mysqli_stmt->errno ; int mysqli_stmt_errno ( mysqli_stmt $stmt )

返回错误代码

array $mysqli_stmt->error_list ; array mysqli_stmt_error_list ( mysqli_stmt $stmt )

[>=5.4.0]返回一系列的错误

string $mysqli_stmt->error ; string mysqli_stmt_error ( mysqli_stmt $stmt )

返回上个错误的 字串描述

int $mysqli_stmt->field_count ; int mysqli_stmt_field_count ( mysqli_stmt $stmt )

返回结果中的字段的数量

int $mysqli_stmt->insert_id ; mixed mysqli_stmt_insert_id ( mysqli_stmt $stmt )

获取上一个自增sql的id

int $mysqli_stmt->num_rows ; int mysqli_stmt_num_rows ( mysqli_stmt $stmt )

获取结果集中的结果数量

int $mysqli_stmt->param_count ; int mysqli_stmt_param_count ( mysqli_stmt $stmt )

返回参数的数量

string $mysqli_stmt->sqlstate ; string mysqli_stmt_sqlstate ( mysqli_stmt $stmt )

获取sqlstate 错误码 /* 方法 */

int mysqli_stmt::attr_get ( int $attr ) int mysqli_stmt_attr_get ( mysqli_stmt $stmt , int $attr )

返回一个设置的属性的值.错误时候返回false

bool mysqli_stmt::attr_set ( int $attr , int $mode ) bool mysqli_stmt_attr_set ( mysqli_stmt $stmt , int $attr , int $mode )

设置或则修改一个预备语句的属性.

bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] ) bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] )

绑定变量到prepare语句

bool mysqli_stmt::bind_result ( mixed &$var1 [, mixed &$... ] ) bool mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var1 [, mixed &$... ] )

为结果绑定变量, 这里所有的列必须在execute()和fetch()后调用.基于列类型的扮靓能够改变之前的PHP类型, 绑定或者重新绑定可以在任何时间进行,绑定在下次fetch()后生效.

bool mysqli_stmt::close ( void ) bool mysqli_stmt_close ( mysqli_stmt $stmt )

关闭 prepare 语句

void mysqli_stmt::data_seek ( int $offset ) void mysqli_stmt_data_seek ( mysqli_stmt $stmt , int $offset )

定位

bool mysqli_stmt::execute ( void ) bool mysqli_stmt_execute ( mysqli_stmt $stmt )

执行一个prepare语句

bool mysqli_stmt::fetch ( void ) bool mysqli_stmt_fetch ( mysqli_stmt $stmt )

从 预备语句中查询并且根据bind_result()将获取的

void mysqli_stmt::free_result ( void ) void mysqli_stmt_free_result ( mysqli_stmt $stmt )

清空存储内存

mysqli_result mysqli_stmt::get_result ( void ) mysqli_result mysqli_stmt_get_result ( mysqli_stmt $stmt )

获取预先查询的结果集

object mysqli_stmt::get_warnings ( mysqli_stmt $stmt ) object mysqli_stmt_get_warnings ( mysqli_stmt $stmt )

获取 show warings 的结果

public bool mysqli_stmt::more_results ( void ) bool mysqli_stmt_more_results ( mysql_stmt $stmt )

检测多重查询中是否有更多结果

public bool mysqli_stmt::next_result ( void ) bool mysqli_stmt_next_result ( mysql_stmt $stmt )

从一个多查询中读取下一个结果

mixed mysqli_stmt::prepare ( string $query ) bool mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query )

预定义一个执行的sql语句

bool mysqli_stmt::reset ( void ) bool mysqli_stmt_reset ( mysqli_stmt $stmt )

重置预定义的语句

mysqli_result mysqli_stmt::result_metadata ( void ) mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt $stmt )

获取结果集的元数据

bool mysqli_stmt::send_long_data ( int $param_nr , string $data ) bool mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , string $data )

允许多重发送服务器长数据

bool mysqli_stmt::store_result ( void ) bool mysqli_stmt_store_result ( mysqli_stmt $stmt )

在每个查询之后必须调用这个函数.如果你想在客户端缓存完整的结果集

MySQLi_Result — MySQLi_Result类

/* 属性 */

int $mysqli_result->current_field ; int mysqli_field_tell ( mysqli_result $result )

获取当前的字段的偏移量

int $mysqli_result->field_count ; int mysqli_num_fields ( mysqli_result $result )

返回字段的数量

array $mysqli_result->lengths ; array mysqli_fetch_lengths ( mysqli_result $result )

返回在结果集中当前行的所有列的长度

int $mysqli_result->num_rows ; int mysqli_num_rows ( mysqli_result $result )

获取结果集中的行数量

/* 方法 */

bool mysqli_result::data_seek ( int $offset ) bool mysqli_data_seek ( mysqli_result $result , int $offset )

调整结果指针到任意结果行

mixed mysqli_result::fetch_all ([ int $resulttype = MYSQLI_NUM ] ) mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] )

[>=5.3.0] 以指定形式返回所有的结果行

mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] ) mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] )

返回数组

array mysqli_result::fetch_assoc ( void ) array mysqli_fetch_assoc ( mysqli_result $result )

返回关联数组

object mysqli_result::fetch_field_direct ( int $fieldnr ) object mysqli_fetch_field_direct ( mysqli_result $result , int $fieldnr )

在指定结果集中获取字段的定义信息 $fieldnr field number

object mysqli_result::fetch_field ( void ) object mysqli_fetch_field ( mysqli_result $result )

以对象形式在结果集中返回下一个字段的定义

array mysqli_result::fetch_fields ( void ) array mysqli_fetch_fields ( mysqli_result $result )

获取所有字段的定义

object mysqli_result::fetch_object ([ string $class_name [, array $params ]] ) object mysqli_fetch_object ( mysqli_result $result [, string $class_name [, array $params ]] )

以对象方式返回当前行.

mixed mysqli_result::fetch_row ( void ) mixed mysqli_fetch_row ( mysqli_result $result )

以数据数组返回结果.

bool mysqli_result::field_seek ( int $fieldnr ) bool mysqli_field_seek ( mysqli_result $result , int $fieldnr )

设置字段查询器到指定的偏移量地方

void mysqli_result::free ( void ) void mysqli_result::close ( void ) void mysqli_result::free_result ( void ) void mysqli_free_result ( mysqli_result $result )

清空结果资源

MySQLi_Driver — MySQLi_Driver类

/* 属性 */

public readonly string$client_info ;

public readonly string$client_version ;

public readonly string$driver_version ;

public readonly string$embedded ;

public bool $reconnect ;

public int $report_mode ;

/* 方法 */

`void mysqli_driver::embedded_server_end ( void )`

停止嵌入服务器

`bool mysqli_driver::embedded_server_start ( bool $start , array $arguments , array $groups )`

初始并且启动嵌入服务器

MySQLi_Warning — MySQLi_Warning类

/* 属性 */

public $message ;

public $sqlstate ;

public $errno ;

/* 方法 */

`public__construct ( void )`

构造函数
`public void next ( void )`

下一个目的

mysqli_sql_exception — The mysqli_sql_exception class

/* 属性 */

protected $code ;

protected $sqlstate ;

别名和过时的Mysqli 函数

  • Mysqlnd — MySQL Native Driver
    • 简介 mysqlnd 是替代 mysql client library的一个工具.这个已经在PHP5.3中做为一个官方的工具,
    • Overview
    • Installation
    • 运行时配置
    • Persistent Connections
    • Statistics
    • Notes
    • MySQL Native Driver Plugin API
  • mysqlnd_ms — Mysqlnd replication and load balancing plugin
    • 简介
    • Quickstart and Examples
    • Concepts
    • 安装/配置
    • 预定义常量
    • Mysqlnd_ms 函数
    • Change History
  • mysqlnd_qc — Mysqlnd query result cache plugin
    • 简介
    • Quickstart and Examples
    • 安装/配置
    • 预定义常量
    • mysqlnd_qc 函数
    • Change History
  • mysqlnd_uh — Mysqlnd user handler plugin
    • 简介
    • Quickstart and Examples
    • 安装/配置
    • 预定义常量
    • MysqlndUhConnection — The MysqlndUhConnection class
    • MysqlndUhPreparedStatement — The MysqlndUhPreparedStatement class
    • Mysqlnd_uh 函数
    • Change History

说明

创建时间: 2023-01-15 09:27:00 , 最后编辑于 2023-11-24 13:56:00