服务端(PHP)函数_MYSQL操作
文档概述
轻语言网站**后端(PHP)**开发中的MYSQL相关操作函数、用于连接和操作服务器中的MySQL数据库,包含数据库连接、SQL执行、数据查询、数据修改、表操作等功能,常用于数据库管理、数据存储、数据查询等场景。
⚠️ 使用限制说明:
- 本文档内函数仅限在轻语言后端文件
.sph代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。- 不得在编写前端页面
.spl代码中使用,更禁止与 JS 代码混合使用。- 编写前端请使用
前端(JavaScript)函数_*类目下的中文函数;服务端只能使用服务端(PHP)函数_*类目下的中文函数。- 前后端函数无同名冲突;MYSQL 数据库操作属后端独有功能,前端无法直接访问数据库。
💡 PHP 原生英文函数使用说明:
- 轻语言后端支持直接调用 PHP 原生英文函数(如
print_r()、pdo_query()、mysqli_fetch_assoc()等)。- 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
- 仅支持使用原生英文函数名,严禁使用 PHP 原生语法格式和英文关键字(如
if(){}、for(){}、function、class、echo等控制结构与语法关键字)。- 控制结构必须使用轻语言中文关键字:
如果...否则...结束 如果、变量循环...结束循环、函数 ... 结束 函数等。- 注:
->(对象方法调用,如连接对象->beginTransaction())、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。
PHP MYSQL 相关特性:
- 底层基于 PDO:所有函数基于 PHP PDO 扩展,支持预处理语句,自动防 SQL 注入
- 参数绑定:
MySQL执行/MySQL查询第二参数为数组,用?占位符绑定参数,避免 SQL 注入 - 事务支持:通过
MySQL取连接对象获取 PDO 对象,可调用beginTransaction/commit/rollBack - 自增ID:
MySQL取LASTID对应 PDOlastInsertId(),获取上次插入的自增ID - 查询结果:
MySQL查询返回关联数组数组(二维);MySQL取一行返回单条关联数组 - 存在性检查:
MySQL查找返回布尔值,用于判断数据是否存在 - 错误处理:连接失败返回假并输出错误信息,便于调试
函数:MySQL连接(数据库地址,数据库账号用户名,数据库密码,数据库名称)
连接服务器安装的MySQL数据库,连接成功返回真,连接失败返回假,并输出错误信息。
' 连接数据库,本地连接地址一般为 localhost
变量 连接 = MySQL连接("localhost", "root", "123456", "testdb")
如果(连接)
返回 真
否则
输出("连接数据库失败: " + 连接)
返回 假
结束 如果
函数:MySQL执行(SQL命令,参数值=[])
'执行MySQL非查询命令、例如:添加数据、删除数据、修改数据。执行命令成功返回真,失败返回假并输出错误信息。
' 执行添加数据,数据表名为 mytable
变量 执行结果 = MySQL执行("insert into mytable(uname,upass,age)value(?,?,?)",["张三","123456",25])
输出 执行结果 ? "数据添加成功" : "数据添加失败"
' 执行修改数据
变量 执行结果 = MySQL执行("update mytable set age=? where id=?",[25,1])
输出 执行结果 ? "数据修改成功" : "数据修改失败"
' 执行删除数据
变量 执行结果 = MySQL执行("delete from mytable where id=?",[1])
输出 执行结果 ? "数据删除成功" : "数据删除失败"
函数:MySQL查询(SQL命令,参数值=[])
'执行MySQL查询命令、可通过该函数查询表中的数据。
' 查询表中所有数据
变量 查询结果 = MySQL查询("select * from mytable")
输出数组(查询结果)
' 查询表中指定字段数据
变量 查询结果 = MySQL查询("select uname,upass from mytable")
输出数组(查询结果)
' 查询表中指定字段数据,并指定查询条件 id 小于 100 且 age 年龄大于 30 的数据
变量 查询结果 = MySQL查询("select uname,upass from mytable where id < ? and age > ?",[100,30])
输出数组(查询结果)
函数:MySQL查找(表名,条件命令,参数值)
'查找指定字段值是否在表中存在、存在返回真、否则返回假。
' 查询表中是否存在指定字段值,例如查找检测表中用户名等于张三、年龄小于25岁的用户是否存在
变量 查询结果 = MySQL查找("mytable","uname=? and age < ?",["张三",25])
输出 查询结果 ? "存在" : "不存在"
函数:MySQL取一行(表名,条件,参数值)
'从表中查询并取出符合条件的第一条数据,如果查询成功返回查询到的数据,否则返回假。
' 例如取出表中id小于10且年龄(age)小于20的数据
变量 获取结果 = MySQL取一行("mytable","id<? and age < ?",[10,20])
如果(获取结果)
输出数组(获取结果)
否则
输出 "数据获取失败"
结束 如果
函数:MySQL取连接对象()
获取当前MySQL数据库连接对象,可用于直接操作PDO连接。
' 获取数据库连接对象
变量 连接对象 = MySQL取连接对象()
如果(连接对象)
输出 "获取连接对象成功"
否则
输出 "获取连接对象失败"
结束 如果
函数:MySQL取LASTID()
获取最后一次插入操作生成的自增ID。
' 执行插入操作后获取自增ID
MySQL执行("INSERT INTO mytable(uname,upass)VALUES(?,?)",["李四","654321"])
变量 新ID = MySQL取LASTID()
输出 "新记录ID: " + 新ID
函数:MySQL取表字段(表名)
获取指定表的所有字段信息,返回字段详细信息的数组。
' 获取表的所有字段信息
变量 字段信息 = MySQL取表字段("mytable")
如果(字段信息)
输出数组(字段信息)
否则
输出 "获取字段信息失败"
结束 如果
函数:MySQL取表是否存在(表名)
检查指定表是否存在,存在返回真,不存在返回假。
' 检查表是否存在
变量 表存在 = MySQL取表是否存在("mytable")
输出 表存在 ? "表存在" : "表不存在"
学习要点
| 知识点 | 代码示例 | 说明 |
|---|---|---|
| 数据库连接 | MySQL连接(地址, 用户, 密码, 库名) | 基于 PHP PDO;成功返回真,失败返回假并输出错误 |
| 非查询执行 | MySQL执行(SQL, 参数数组) | 增删改操作;用 ? 占位符防注入;成功返回真 |
| 查询多行 | MySQL查询(SQL, 参数数组) | 返回二维关联数组;每行为一条记录 |
| 存在性检查 | MySQL查找(表名, 条件, 参数) | 返回布尔值;判断数据是否存在 |
| 查询单行 | MySQL取一行(表名, 条件, 参数) | 返回单条关联数组;查不到返回假 |
| 取连接对象 | MySQL取连接对象() | 获取 PDO 对象;可调用事务方法 beginTransaction/commit |
| 取自增ID | MySQL取LASTID() | 对应 PDO lastInsertId();插入后获取自增ID |
| 取表字段 | MySQL取表字段(表名) | 返回字段信息数组 |
| 表存在检查 | MySQL取表是否存在(表名) | 返回布尔值 |
| 参数绑定 | ["张三", 25] / ? 占位符 | PDO 预处理;自动防 SQL 注入 |
| SQL 注入防护 | MySQL执行(SQL, 参数) 配合 ? 占位符 | 参数自动转义;切勿拼接SQL字符串 |
| 输出函数 | 输出 值 / 输出数组(数组) | 后端输出到响应体;对应 PHP echo/print_r |
相关文档
- 文档
服务端(PHP)函数_核心库函数——JSON编码、取请求值等接口数据处理 - 文档
服务端(PHP)函数_编码操作——反斜杠转义防注入辅助 - 文档
服务端(PHP)函数_字符串操作—— 字符串字段处理 - 文档
服务端(PHP)函数_数组操作—— 查询结果数组遍历 - 文档
服务端(PHP)函数_时间操作—— 时间戳字段读写 - 文档
轻语言网站:变量与数组与对象的定义—— 变量、对象、数组的基本语法