px普贤教程PuXian
普贤教程 › 包参考

mysql 包

MySQL 客户端驱动

mysql_connect(host, port, user, password[, dbname][, opts]) → Ok(conn dict) | Err

项值
包名mysql
版本0.2.0
可用版本0.1.0 / 0.2.0
入口mysql.px
分类数据库
文件数 / 行数3 / 1063

安装与引入

bash
pxpkg init          # 首次
pxpkg add mysql@0.2.0
pxpkg install
px
import mysql
所属分类教程:数据库

公开接口

函数参数
mysql_connecthost, port, user, password, dbname = "", opts = null
mysql_queryconn, sql
mysql_stmt_prepareconn, sql
mysql_stmt_executeconn, stmt, params
mysql_stmt_closeconn, stmt
mysql_query_paramsconn, sql, params
mysql_closeconn
其余 45 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
my_cstr_atb, off
mysql_read_resultfd
mysql_finish_connectfd, aseq, host, port, user, dbname, plugin
my_conn_badconn, what
my_conn_checkconn
mysql_pingconn
mysql_select_dbconn, dbname
mysql_beginconn
mysql_commitconn
mysql_rollbackconn
mysql_escapes
my_u32v
my_u16v
my_u32_ofb, off
my_u16_ofb, off
my_u8_ofb, off
my_recv_nfd, n
my_packet_lenb
my_build_packetseq, payload
my_send_packetfd, seq, payload
my_read_packetfd
my_lenenc_intb, off
my_lenenc_strb, off
my_is_eofpayload
my_err_messagepayload
my_err_is_servermsg
my_err_codemsg
my_err_fatalcode
my_ok_resultpayload
my_native_tokenpassword, nonce
my_is_caching_sha2plugin
my_is_nativeplugin
my_auth_tokenplugin, password, nonce
my_stmt_columnb
my_lenenc_int_bytesn
my_stmt_paramv
my_stmt_preparefd, sql
my_stmt_executefd, stmt, params
my_stmt_rowb, columns
my_u64_dechi, lo
my_stmt_valueb, off, typ, unsigned
my_stmt_datetimeb, off, ln
my_stmt_timeb, off, ln
my_zero2n
my_stmt_closefd, stmt

包内说明(源码头注释)

text
============================================================
普贤生态库:registry/mysql —— MySQL 客户端驱动
------------------------------------------------------------
mysql_connect(host, port, user, password[, dbname][, opts]) → Ok(conn dict) | Err
mysql_query(conn, sql)     → Ok(query result dict) | Err
mysql_query_params(conn, sql, params) → Ok(query result dict) | Err(预处理语句,防注入)
mysql_stmt_prepare / mysql_stmt_execute / mysql_stmt_close → 显式语句生命周期
mysql_close(conn)          → Ok(true) | Err
文本协议(mysql_query)结果一律 string;二进制协议(mysql_query_params)按列类型
返回 typed 值(int / float / string / null),decimal/日期为 string。
- 握手:HandshakeV10 → HandshakeResponse41(CLIENT_PROTOCOL_41 +
CLIENT_SECURE_CONNECTION + CLIENT_CONNECT_WITH_DB + CLIENT_PLUGIN_AUTH)
- 认证:mysql_native_password(SHA1(SHA1(pw)) 对拍)与 caching_sha2_password
- 查询:COM_QUERY (0x03) → OK / ERR / 结果集(列定义 + 行,文本协议)
- 结果形态:{ columns: [{name}], rows: [[值...]] };NULL → null
依赖 runtime native:tcp_connect_ex / tcp_send_ex / tcp_recv_ex /
sha256 / bytes 族 / int_to_bytes / bytes_to_int / base64_encode
语言能力说明(m197):
- PX-DEF-026/025/016 已修:sha1_bytes / sha256_bytes / byte / .find 均为原生(M188),
认证 token 直接调用原生 SHA1/SHA256,不再自实现
- bytes_to_int endian 参数自 M186 起三轨可靠
============================================================