普贤教程 › 包参考
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_connect | host, port, user, password, dbname = "", opts = null |
mysql_query | conn, sql |
mysql_stmt_prepare | conn, sql |
mysql_stmt_execute | conn, stmt, params |
mysql_stmt_close | conn, stmt |
mysql_query_params | conn, sql, params |
mysql_close | conn |
其余 45 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
my_cstr_at | b, off |
mysql_read_result | fd |
mysql_finish_connect | fd, aseq, host, port, user, dbname, plugin |
my_conn_bad | conn, what |
my_conn_check | conn |
mysql_ping | conn |
mysql_select_db | conn, dbname |
mysql_begin | conn |
mysql_commit | conn |
mysql_rollback | conn |
mysql_escape | s |
my_u32 | v |
my_u16 | v |
my_u32_of | b, off |
my_u16_of | b, off |
my_u8_of | b, off |
my_recv_n | fd, n |
my_packet_len | b |
my_build_packet | seq, payload |
my_send_packet | fd, seq, payload |
my_read_packet | fd |
my_lenenc_int | b, off |
my_lenenc_str | b, off |
my_is_eof | payload |
my_err_message | payload |
my_err_is_server | msg |
my_err_code | msg |
my_err_fatal | code |
my_ok_result | payload |
my_native_token | password, nonce |
my_is_caching_sha2 | plugin |
my_is_native | plugin |
my_auth_token | plugin, password, nonce |
my_stmt_column | b |
my_lenenc_int_bytes | n |
my_stmt_param | v |
my_stmt_prepare | fd, sql |
my_stmt_execute | fd, stmt, params |
my_stmt_row | b, columns |
my_u64_dec | hi, lo |
my_stmt_value | b, off, typ, unsigned |
my_stmt_datetime | b, off, ln |
my_stmt_time | b, off, ln |
my_zero2 | n |
my_stmt_close | fd, 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 起三轨可靠 ============================================================