服务端(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(){}functionclassecho 等控制结构与语法关键字)。
  • 控制结构必须使用轻语言中文关键字:如果...否则...结束 如果变量循环...结束循环函数 ... 结束 函数 等。
  • 注:->(对象方法调用,如 连接对象->beginTransaction())、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。

PHP MYSQL 相关特性:

  • 底层基于 PDO:所有函数基于 PHP PDO 扩展,支持预处理语句,自动防 SQL 注入
  • 参数绑定MySQL执行/MySQL查询 第二参数为数组,用 ? 占位符绑定参数,避免 SQL 注入
  • 事务支持:通过 MySQL取连接对象 获取 PDO 对象,可调用 beginTransaction/commit/rollBack
  • 自增IDMySQL取LASTID 对应 PDO lastInsertId(),获取上次插入的自增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
取自增IDMySQL取LASTID()对应 PDO lastInsertId();插入后获取自增ID
取表字段MySQL取表字段(表名)返回字段信息数组
表存在检查MySQL取表是否存在(表名)返回布尔值
参数绑定["张三", 25] / ? 占位符PDO 预处理;自动防 SQL 注入
SQL 注入防护MySQL执行(SQL, 参数) 配合 ? 占位符参数自动转义;切勿拼接SQL字符串
输出函数输出 值 / 输出数组(数组)后端输出到响应体;对应 PHP echo/print_r

相关文档

  • 文档服务端(PHP)函数_核心库函数 —— JSON编码取请求值 等接口数据处理
  • 文档服务端(PHP)函数_编码操作 —— 反斜杠转义 防注入辅助
  • 文档服务端(PHP)函数_字符串操作 —— 字符串字段处理
  • 文档服务端(PHP)函数_数组操作 —— 查询结果数组遍历
  • 文档服务端(PHP)函数_时间操作 —— 时间戳字段读写
  • 文档轻语言网站:变量与数组与对象的定义 —— 变量、对象、数组的基本语法