mysqlstr

Introduction

a php extension provide string processing of mysql

(strtolower && strtoupper base utf8)

把mysql里的字符串处理函数封装成php扩展,供php使用

目前只提供了utf8下的大写转小写以及小写转大写这两个功能

Why need this php ext

the result of strtolower(strtoupper) is different between php and mysql

efficiency

写这个扩展的目的有两个,一个是php的大小写转换函数和mysql的有一些区别,另外一个是性能问题

##Installation

$ /path/to/phpize

$ ./configure --with-php-config=/path/to/php-config

$ make

$ make install

add extension=mysqlstr.so in php.ini

Interface

strtoupper_utf8_ext

strtoupper_utf8_ext - make a utf8 string uppercase

Description

string strtoupper_utf8_ext(string str)

strtolower_utf8_ext

strtolower_utf8_ext - make a utf8 string lowercase

Description

string strtolower_utf8_ext(string str)

Example

case

$str = "High School D×DⅡ ";

$timeMB = microtime(true);

$resMb = mb_strtolower( $str, "UTF-8");

$timeMB = microtime(true) - $timeMB;

$timeSQL = microtime(true);

$resSQL = strtolower_utf8_ext($str);

$timeSQL = microtime(true) - $timeSQL;

echo "mbTime:" . sprintf("%.5f",$timeMB)." \n";

echo "sqlTime:" . sprintf("%.5f",$timeSQL)."\n";

echo "mbRes:" . $resMb . "\n";

echo "sqlRes:" . $resSQL . "\n";

result

mbTime:0.00004

sqlTime:0.00001

mbRes:high school d×dⅡ

sqlRes:high school d×dⅱ

efficiency case

$str = "High School D×DⅡ ";

$timeMB = microtime(true);

for($i=0;$i<30000;$i++)

$resMb = mb_strtolower( $str, "UTF-8");

$timeMB = microtime(true) - $timeMB;

$timeSQL = microtime(true);

for($i=0;$i<30000;$i++)

$resSQL = strtolower_utf8_ext($str);

$timeSQL = microtime(true) - $timeSQL;

echo "mbTime: " . sprintf("%.5f",$timeMB)." \n";

echo "sqlTime: " . sprintf("%.5f",$timeSQL)."\n";

result:

mbTime: 0.18481

sqlTime: 0.01055

More

String processing of mysql base mysql-5.1.74

More related analysis base Chinese is here

mysql strtolower_GitHub - redfoxli/mysqlstr: a php extension provide string processing of mysql相关推荐

  1. 远程mysql用ssh连接_使用SSH密钥连接到远程MySQL服务器

    远程mysql用ssh连接 In this article, it will be described how to connect to remote MySQL Server on Linux O ...

  2. xampp下载,踩得mysql的坑!!使用本机之前装入的mysql+idea配置PHP

    xampp下载,踩得mysql的坑!!使用本机之前装入的mysql+idea配置PHP 啊,昨天准备开始学习PHP一些基础知识.首先,我们得需要一些基础的环境: 安装 web 服务器 安装 PHP 安 ...

  3. liunx上mysql源码安装mysql,搞定linux上MySQL编程(一):linux上源码安装MySQL

    [版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 1. 首先下载源码包: ftp://ftp.jaist.ac.jp/pub/m ...

  4. mysql数据库是一个软件呐_15款好用的mysql管理软件

    1. Induction Induction是一款用于理解数据关系的开源管理工具,它可用来探索行/列,运行查询和数据可视化等方面.该工具支持多种数据库,包括PostgreSQL,MySQL,SQLit ...

  5. linux mysql c语言编程,在Linux下通过C语言操作MySQL数据库

    2010年1月27日 晚 22:10 作者:longyun(http://www.linuxdiyf.com/mailto:mtd527@gmail.com) 续:小弟最近想学习数据库,并想开发一个简 ...

  6. mysql如何下载连接到visual_Visual Studio 2015 Community连接到Mysql

    Visual Studio 2015 Community连接到MySQL,步骤很简单,但刚弄的时候一脸懵,现在记录如下以作备忘: 安装好VS2015和Mysql后,只需要再安装两个东西即可. 一个是S ...

  7. 《mysql性能调优与架构设计》笔记: 一mysql 架构组成

    2019独角兽企业重金招聘Python工程师标准>>> 2.1mysql物理文件组成 2.1.1日志文件: 1,查看mysql配置文件:mysql --verbose --help ...

  8. mysql哪些数据库不能删除吗_为什么我不能删除MySQL数据库?

    问题 我在Mac OS 10.8.2上运行MySQL 5.5.23,无法删除特定的数据库,但我可以删除其他数据库. 当我试图删除特定的表我得到这个错误: #1548 - Cannot load fro ...

  9. mysql 清空表怎么恢复_mysql怎么恢复删除的表?mysql找回误删表的数据方法

    下面小编就为大家带来一篇mysql 找回误删表的数据方法(必看).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧. 有备份的话很简单,只需要生成一个最近备份的数据,然后用 ...

最新文章

  1. python中time()时间的相关问题
  2. Eclipse中Spring插件:Spring Tool 4(aka Spring Tool Suite 4)插件安装
  3. D - Undoubtedly Lucky Numbers CodeForces - 244B(数论 )
  4. IOS web app一些实用的属性设置
  5. 关于spring cloud的几个问题
  6. php随笔10-thinkphp 3.1.3 模板继承 布局
  7. PHP学习笔记(八)
  8. Docker 基础技术之 Linux namespace 详解
  9. 5G概念被热炒,运营商吃相不要太难看
  10. AMPL—快速了解,秒懂它。
  11. 系统项目验收测试报告怎么做?2020最新测试报告模板
  12. SOPCAST所有频道的地址
  13. vue项目中使用echarts 地图 自定义图标
  14. 三行代码搭建一个全能书籍系统(wiki)
  15. Java获取基金接口天天基金_天天基金网数据接口
  16. 基于区块链的Smart系统-题库及试卷管理模块的设计与开发
  17. js 兼容事件添加addEvent()
  18. springboot使用actuator
  19. OpenCV中将Mat RGBA4通道转换成RGB3通道
  20. 【ASTRA 3D的配置】

热门文章

  1. org.hibernate.annotationexception no identifier specified for entity
  2. 编写一个判断素数的函数,在主函数输入一个整数时,输出是否素数的信息。...
  3. Service Broker实现发布-订阅(Publish-Subscribe)框架(3)
  4. 使用CEfSharp 下载文件 弹出保存框 IDownloadHandler
  5. Selenium - 简介
  6. 使用事务操作SQLite数据批量插入,提高数据批量写入速度,源码讲解
  7. 支付宝支付-常用支付API详解(查询、退款、提现等)-转
  8. Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
  9. Ext.LoadMask遮罩的效果几种实现方式
  10. 比较正宗的验证邮箱的正则表达式js代码详解