iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >swoole学习之异步Mysql
  • 931
分享到

swoole学习之异步Mysql

2023-06-14 06:06:23 931人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关swoole学习之异步Mysql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。官方示例:$db = new swoole_Mysql();$ser

这篇文章将为大家详细讲解有关swoole学习之异步Mysql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

swoole学习之异步Mysql

官方示例:

$db = new swoole_Mysql();$server = array(    'host' => '127.0.0.1',    'port' => 3306,    'user' => 'test',    'passWord' => 'test',    'database' => 'test',    'charset' => 'utf8', //指定字符集    'timeout' => 2,  // 可选:连接超时时间(非查询超时时间),默认为SW_mysql_CONNECT_TIMEOUT(1.0));$db->connect($server, function ($db, $result) {    if ($result === false) {        var_dump($db->connect_errno, $db->connect_error);        die;    }    $sql = 'show tables';    $db->query($sql, function(swoole_mysql $db, $result) {        if ($result === false)        {            var_dump($db->error, $db->errno);        }        elseif ($result === true )        {            var_dump($db->affected_rows, $db->insert_id);        }        var_dump($result);        $db->close();    });});

常用函数:

connect($config, $callback) 连接数据库
$config= array(    'host' => '127.0.0.1',    'port' => 3306,    'user' => 'test',    'password' => 'test',    'database' => 'test',    'charset' => 'utf8', //指定字符集    'timeout' => 2,  // 可选:连接超时时间(非查询超时时间),默认为SW_MYSQL_CONNECT_TIMEOUT(1.0));
  • host 主机ip地址

  • port端口号,默认3306

  • user用户名

  • password密码

  • database选择的数据库

  • charset设置客户端字符集

  • timeout 连接超时时间,默认1.0

$callback回调函数function($db, $result )

  • $db swoole_mysql的对象

  • $result 返回值 , 为true的时候才能执行query , 为false的时候 , 可以通过$db->connect_errno$db->connect_error获取错误码和错误信息

query($sql, $callback) 执行sql语句
$sql = "select * from test ";$db->query($sql,function($link,$result){});

$sql为要执行的SQL语句
$callback回调函数
每个MySQLi连接只能同时执行一条SQL,必须等待返回结果才能执行下一条SQL

回调函数function($link,$result)

  • 当SQL执行失败即$result == false的时候,通过$link->error可获得错误信息,$link->errno获得错误码

  • 执行成功,$result == true ,通过$link->affected_rows获得受影响的行数 , $link->insert_id获得insert操作的自增ID

  • 执行成功 且SQL为查询语句的时候, $result返回的是查询结果数组

close关闭连接
 $db->close();

将整个SQL连接关闭

on($event_name,$callback) 回调函数

目前swoole_mysql只有一个onClose回调函数

//mysql连接关闭时,自动触发$db->on('close',function($db){echo "mysql connection is closed";});

swoole_mysql中的事物

在官方文档中有详细介绍:

begin(function($db,$result))开启事物
  • 启动一个MySQL事务,事务启动成功会回调指定的函数

  • commitrollback结合实现MySQL事务处理

  • 同一个MySQL连接对象,同一时间只能启动一个事务

  • 必须等到上一个事务commit或rollback才能继续启动新事务

  • 否则底层会抛出Swoole\MySQL\Exception异常,异常code21

commit($callback)提交事物
  • 提交事务,当服务器返回响应时回调此函数

  • 必须先调用begin启动事务才能调用commit否则底层会抛出Swoole\MySQL\Exception异常

  • 异常code22

rollback($callback)事物回滚
  • 必须先调用begin启动事务才能调用rollback否则底层会抛出Swoole\MySQL\Exception异常

  • 异常code22

官方示例:

$db->begin(function( $db, $result) {    $db->query("update userinfo set level = 22 where id = 1", function($db, $result) {        $db->commit(function($db, $result) {            echo "commit ok\n";        });    });});

关于“swoole学习之异步Mysql”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: swoole学习之异步Mysql

本文链接: https://www.lsjlt.com/news/268477.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • swoole学习之异步Mysql
    这篇文章将为大家详细讲解有关swoole学习之异步Mysql,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。官方示例:$db = new swoole_mysql();$ser...
    99+
    2023-06-14
  • PHP之Swoole学习安装教程
    目录一、前言二、Swoole 环境搭建2.1 PHP Installation 2.2 Swoole Installation2.3 开发工具提示包一、前言 s...
    99+
    2024-04-02
  • python3学习之异常
    ##异常处理 #try: #    pass #except Exception as ex:   Exception(捕获所有错误)可以换成任何异常类型,代表只捕获指定错误, # 可以写多个except #    pass ##异常类型...
    99+
    2023-01-31
    异常
  • PHP+swoole 异步发送Email
    用到的库:swoole , PHPMailer , thinkphp5 用SWOOLE 新建一个服务 ...
    99+
    2023-09-01
    php swoole
  • python学习之异常处理
    一、语法导致的异常,应该在程序运行前处理 例子: print( 输出: File "E:/python/oldboyday9/learn1.py", line 4     if      ^ SyntaxError: invalid sy...
    99+
    2023-01-31
    异常 python
  • 多线程的同步和异步学习
    1.创建多线程的方式有两种方式创建多线程,一种是继承Thread类,一种是实现Runnable接口;一个类如果继承了Thread类,同时覆写了本类中的run()方法进行启动,就可以实现多线程操作了.但是一个类只能继承一个父类.<1&g...
    99+
    2023-06-02
  • python中asyncio异步编程学习
    1.   想学asyncio,得先了解协程 携程的意义: 计算型的操作,利用协程来回切换执行,没有任何意义,来回切换并保存状态 反倒会降低性能。 ...
    99+
    2024-04-02
  • 学习Golang异步编程的技巧
    学习Golang异步编程的技巧 随着互联网技术的不断发展,对于高效并发处理的需求也日益增加。在编程领域,异步编程是一种常见的解决方案,可以有效提高程序的性能和响应速度。Go语言作为一门...
    99+
    2024-02-29
    技巧 golang 异步编程 go语言
  • 学习MYSQL之ICP、MRR、BKA
    Index Condition Pushdown(ICP) Index Condition Pushdown (ICP)是mysql使用索引从表中检索行数据的一种优化方式。 ICP原理 ...
    99+
    2024-04-02
  • swoole HTTP服务器中异步MySQL的示例分析
    这篇“swoole HTTP服务器中异步MySQL的示例分析”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“swoole HTTP服务器中异步MySQL的示例分析”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细...
    99+
    2023-06-14
  • Java异常学习之自定义异常详解
    前言哎呀,妈呀,又出异常了!俗话说:“代码虐我千百遍,我待代码如初恋”。小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常。Java异常的体系什么的,理论知识啥的我就懒得去BB太多了,是个搞J...
    99+
    2023-05-31
    java 自定义异常 ava
  • Python学习之异常处理详解
    目录什么是异常与异常处理异常的语法捕获通用异常捕获具体异常如何捕获多个异常捕获多个异常 - 方法1捕获多个异常 - 方法2本章节主要学习 python 中的异常处理,来看一下该章节的...
    99+
    2024-04-02
  • Python学习手册之Python异常和
    在上一篇文章中,我们介绍了 Python 的函数和模块,现在我们介绍 Python 中的异常和文件。 查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9963920.html 异常和文件 异常 异...
    99+
    2023-01-30
    异常 手册 Python
  • C++学习之异常机制详解
    目录1. 异常处理机制介绍2. 如何抛出异常和捕获异常2.1 抛出异常2.2 捕获异常3. 如何实现自己的异常4. 注意事项5. 面试常问的题目6. 答案7. 总结1. 异常处理机制...
    99+
    2023-05-15
    C++异常机制 C++异常
  • Python学习之异常断言详解
    该章节我们来学习 异常的最后一个知识点 - 断言 ,断言是判断一个表达式,在表达式为 False 的时候触发异常。表达式我们可以对号入座,可以是条件语句中的声明,也可以是是 whil...
    99+
    2024-04-02
  • JAVA学习之一步步搭建spring框架
    前言作为一个服务端开发感觉一直挺排斥框架这种东西的,总觉得什么实现逻辑都帮你封装在里面了,你只需要配置这配置那个,出了问题也不知道怎么排查,之前即使写web程序也宁愿使用jetty这样的嵌入式的web server实现,自己写servlet...
    99+
    2023-05-31
    搭建 spring 框架
  • MySQL学习之事务详解
    目录一. 事务的业务场景二. 事务的使用三. 事务的特性(ACID)1. 原子性(Atomicity)2. 一致性(Consistency)3. 持久性(Durability)4. 隔离性(Isolation)四. 事务...
    99+
    2022-12-08
    MySQL事务使用 MySQL事务
  • Python全栈之学习MySQL(1)
    目录1. mysql约束2. 外键_联合主键_唯一索引3. 存储引擎_表关系总结1. mysql约束 # ### char varchar (补充) char 字符长...
    99+
    2024-04-02
  • Python全栈之学习MySQL(3)
    目录1. pymysql的基本操作2. sql注入攻击3. sql增删改查4. mysql的数据恢复5. sql语句优化总结1. pymysql的基本操作 # ### python ...
    99+
    2024-04-02
  • Python全栈之学习MySQL(2)
    目录1. mysql_where子句_聚合函数2. mysql_其他子句语法3. mysql_子查询4. exists关键字5. 练习所需表数据6. 小练习(1)表结构:(...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作