我的编程空间,编程开发者的网络收藏夹
学习永远不晚

swoole学习之异步Mysql

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

swoole学习之异步Mysql

这篇文章将为大家详细讲解有关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”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

swoole学习之异步Mysql

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

下载Word文档

猜你喜欢

swoole学习之异步Mysql

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

python3学习之异常

##异常处理#try:#    pass#except Exception as ex:   Exception(捕获所有错误)可以换成任何异常类型,代表只捕获指定错误,# 可以写多个except#    pass##异常类型:####完整
2023-01-31

多线程的同步和异步学习

1.创建多线程的方式有两种方式创建多线程,一种是继承Thread类,一种是实现Runnable接口;一个类如果继承了Thread类,同时覆写了本类中的run()方法进行启动,就可以实现多线程操作了.但是一个类只能继承一个父类.<1>通过ru
2023-06-02

python学习之异常处理

一、语法导致的异常,应该在程序运行前处理例子:print(输出:File "E:/python/oldboyday9/learn1.py", line 4    if     ^SyntaxError: invalid syntax注:输出
2023-01-31

Android编程学习之异步加载图片的方法

本文实例讲述了Android编程学习之异步加载图片的方法。分享给大家供大家参考,具体如下: 最近在android开发中碰到比较棘手的问题,就是加载图片内存溢出。我开发的是一个新闻应用,应用中用到大量的图片,一个界面中可能会有上百张图片。开发
2022-06-06

Node.js异步I/O学习笔记

“异步”这个名词的大规模流行是在Web 2.0浪潮中,它伴随着Javascript和AJAX席卷了Web。但在绝大多数高级编程语言中,异步并不多见。PHP最能体现这个特点:它不仅屏蔽了异步,甚至连多线程也不提供,PHP都是以同步阻塞的方式来
2022-06-04

swoole HTTP服务器中异步MySQL的示例分析

这篇“swoole HTTP服务器中异步MySQL的示例分析”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“swoole HTTP服务器中异步MySQL的示例分析”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细
2023-06-14

从零学习node.js之详解异步控制工具async(八)

前言 大家在编写异步程序时,最头痛的就是不知道结果什么时候返回给我们,然后执行后面的操作,很多时候只能把后面的操作放到返回成功的函数里,或者使用计数器等方法。比较典型的两个就是:后面的操作需要依赖上一个异步操作的结果;多个异步操作并行执行,
2022-06-04

学习Golang异步编程的技巧

学习Golang异步编程的技巧随着互联网技术的不断发展,对于高效并发处理的需求也日益增加。在编程领域,异步编程是一种常见的解决方案,可以有效提高程序的性能和响应速度。Go语言作为一门支持并发编程的高级编程语言,其内置的goroutine和
学习Golang异步编程的技巧
2024-02-29

Python学习手册之Python异常和

在上一篇文章中,我们介绍了 Python 的函数和模块,现在我们介绍 Python 中的异常和文件。查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9963920.html异常和文件异常异常也叫例外
2023-01-30

C++学习之异常机制详解

C++中的异常处理机制可以帮助我们处理程序在运行时可能会遇到的异常情况,比如内存分配错误、文件打开失败等。本文就和大家详细讲讲C++中异常机制的具体使用吧
2023-05-15

Java异常学习之自定义异常详解

前言哎呀,妈呀,又出异常了!俗话说:“代码虐我千百遍,我待代码如初恋”。小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常。Java异常的体系什么的,理论知识啥的我就懒得去BB太多了,是个搞J
2023-05-31

JAVA学习之一步步搭建spring框架

前言作为一个服务端开发感觉一直挺排斥框架这种东西的,总觉得什么实现逻辑都帮你封装在里面了,你只需要配置这配置那个,出了问题也不知道怎么排查,之前即使写web程序也宁愿使用jetty这样的嵌入式的web server实现,自己写servlet
2023-05-31

编程热搜

目录