关于 PDO 的学习我们告一段落,从这篇文章开始,我们继续学习另外一个 MySQL 扩展,也就是除了 PDO 之外的最核心的 MySQLi 扩展。...现在如果想要使用过程式的代码来操作数据库,只能使用 mysqli 扩展了。当然,mysqli 扩展也是支持面向对象式的写法的。...什么是 MySQLi MySQLi 扩展允许我们访问 MySQL4.1 及以上版本的数据库所提供的功能。...扩展的安装及 MySQL8 需要注意的地方 MySQLi 的扩展是随 PHP 源码一起发布的,我们在编译 PHP 的时候加上 --with-mysqli 就可以了。...方法名上全部改成 mysqli_xxx 就可以了。 面向对象式 面向对象式的就有点像 PDO 。我们要先获得一个连接句柄类,然后操作这个类就可以了。
PHP中的MySQLi扩展学习(二)mysqli类的一些少见的属性方法 虽说是少见的一些属性方法,但是可能还是有不少同学在日常的开发中使用过,这里只是学习了可能相对来说我们用得比较少的一些 mysqli...就当是扩展一下自己的知识体系。 切换用户 首先就是切换一下当前连接数据库的用户。...总结 今天的文章学习的就是一些简单的 mysqli 类所持有的属性和方法。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/5.PHP中的MySQLi扩展学习(二)mysqli...类的一些少见的属性方法.php 参考文档: https://www.php.net/manual/zh/book.mysqli.php
PHP中的MySQLi扩展学习(一)MySQLi介绍 关于 PDO 的学习我们告一段落,从这篇文章开始,我们继续学习另外一个 MySQL 扩展,也就是除了 PDO 之外的最核心的 MySQLi 扩展。...现在如果想要使用过程式的代码来操作数据库,只能使用 mysqli 扩展了。当然,mysqli 扩展也是支持面向对象式的写法的。...什么是 MySQLi MySQLi 扩展允许我们访问 MySQL4.1 及以上版本的数据库所提供的功能。...扩展的安装及 MySQL8 需要注意的地方 MySQLi 的扩展是随 PHP 源码一起发布的,我们在编译 PHP 的时候加上 --with-mysqli 就可以了。...方法名上全部改成 mysqli_xxx 就可以了。 面向对象式 面向对象式的就有点像 PDO 。我们要先获得一个连接句柄类,然后操作这个类就可以了。
虽说是少见的一些属性方法,但是可能还是有不少同学在日常的开发中使用过,这里只是学习了可能相对来说我们用得比较少的一些 mysqli 的属性或方法。就当是扩展一下自己的知识体系。...$mysqli2 = @new mysqli("xxx", "root", "", "blog_test");var_dump($mysqli2->connect_errno); // int(2002...var_dump($mysqli->thread_safe); // NULLvar_dump($mysqli->thread_id); // int(600)$thread_id = $mysqli-...mysqli 对象 上面说的很多属性其实我们可以直接通过打印 mysqli 对象就可以查看到。...总结 今天的文章学习的就是一些简单的 mysqli 类所持有的属性和方法。
PHP开发中,使用Mysql扩展来链接Mysql数据库进行增删改查等操作。 在选择Mysql扩展的时候,官方提供了两种: MySQL 原始版。...从 PHP 5.5.0 起这个扩展已经被废弃,并且从 PHP 7.0.0. 开始被移除。 作为替代,可以使用 mysqli 或者 PDO_MySQL 扩展代替。 MySQL 增强版。...mysqli扩展允许我们访问MySQL 4.1及以上版本提供的功能。...相关概念 MySQL 与 MySQLi 都是PHP方面的函数集。 在 PHP5 版本以后,增加了mysqli的函数功能。 某种意义上讲,它是MySQL系统函数的增强版,更稳定更高效更安全。...建议 PHP版本为5.x建议使用 mysqli 扩展。 PHP版本为7 只能使用 mysqli 扩展。 Thanks ~
PHP中的MySQLi扩展学习(三)mysqli的基本操作 我们继续 MySQLi 扩展的学习,上篇文章中提到过,MySQLi 的扩展相对于 PDO 来说功能更加的丰富,所以我们依然还会在学习过程中穿插各种...MySQLi 中好玩的方法函数。...$mysqli = new mysqli(); $mysqli->real_connect("localhost", "root", "", "blog_test"); var_dump($mysqli...($mysqli->affected_rows); var_dump($mysqli->insert_id); $mysqli->query("update zyblog_test_user set...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/6.PHP中的MySQLi扩展学习(三)mysqli
我们继续 MySQLi 扩展的学习,上篇文章中提到过,MySQLi 的扩展相对于 PDO 来说功能更加的丰富,所以我们依然还会在学习过程中穿插各种 MySQLi 中好玩的方法函数。...$mysqli = new mysqli();$mysqli->real_connect("localhost", "root", "", "blog_test");var_dump($mysqli);...($mysqli);// ["thread_id"]=>// int(164) 首先,我们实例化了一个 mysqli 对象。...($mysqli->affected_rows);var_dump($mysqli->insert_id);$mysqli->query("update zyblog_test_user set password...$mysqli = new mysqli("localhost", "root", "", "blog_test");$mysqli->multi_query($sql);$i = 1;do{ echo
PHP中的MySQLi扩展学习(六)MySQLI_result对象操作 在之前的文章中,我们就已经接触过 MYSQLI_result 相关的内容。它的作用其实就是一个查询的结果集。...我们也可以指定一个类,并且可以为这个类的构造函数传递参数,这一点也和 PDO 中的相关功能一样。...总结 至此,MySQLi 相关扩展的学习我们也就告一段落了,其它的一些类和函数比如 MySQLI_Driver 、 MySQLI_Exception 之类的内容大家可以自行查阅相关的文档,内容都不是很多...总体来说,整个 PHP 中和 MySQL 打交道的官方扩展我们就已经全部学习完了,PDO 和 MYSQLi 这两个扩展大家更主要的还是要掌握它们的区别和联系。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/9.PHP中的MySQLi扩展学习(六)MySQLI_result
对于 MySQLi 来说,事务和预处理语句当然是它之所以能够淘汰 MySQL(原始) 扩展的资本。我们之前也已经学习过了 PDO 中关于事务和预处理语句相关的内容。...所以在这里,我们就不再多讲理论方面的东西了,直接上代码来看看 MySQLi 中这两大特性与 PDO 在使用上的区别。 事务处理 首先,我们还是要让 MySQLi 对于错误的语句也报出异常来。...而在 MySQLi 中,我们则需要指定 MySQLi_Driver 对象中的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...// 使用异常处理错误情况 $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT...; 这样就指定了在使用 MySQLi 扩展时,所有的错误信息都会作为异常抛出。
PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作 就像 PDO 中的 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成的对象,专门用来操作 MySQLi...; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt->bind_param...; $id = 's'; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt-...可以看出,MySQLI_STMT 的错误属性和信息基本和 MySQLi 对象的是一样的。 列绑定 除了请求查询语句参数的绑定之外,MySQLI_STMT 也是支持直接绑定列的。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/8.PHP中的MySQLi扩展学习(五)MySQLI_STMT
就像 PDO 中的 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成的对象,专门用来操作 MySQLi 所生成的预处理语句的。...; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt->bind_param...; $id = 's'; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt-...可以看出,MySQLI_STMT 的错误属性和信息基本和 MySQLi 对象的是一样的。 列绑定 除了请求查询语句参数的绑定之外,MySQLI_STMT 也是支持直接绑定列的。...关于 MySQLI_result 对象的内容,我们将在下篇文章中再进行详细的学习了解。
PHP中的MySQLi扩展学习(四)mysqli的事务与预处理语句 对于 MySQLi 来说,事务和预处理语句当然是它之所以能够淘汰 MySQL(原始) 扩展的资本。...而在 MySQLi 中,我们则需要指定 MySQLi_Driver 对象中的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...// 使用异常处理错误情况 $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT...; 这样就指定了在使用 MySQLi 扩展时,所有的错误信息都会作为异常抛出。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/7.PHP中的MySQLi扩展学习(四)mysqli
2、PHP MySQLi 扩展 PHP 官方提供了很多用于与 MySQL 服务器进行交互的扩展,从最早的 mysql 到后来增强版的 mysqli(更加安全),它们都是 PHP 函数式编程时代的扩展包,...一般来说,本地 PHP 集成开发环境都会自带 mysqli 扩展: ?...下面我们通过一个简单的示例来演示如何通过 mysqli 扩展与 MySQL 服务器交互。...SQL 语句,所以也可以通过它规避一些简单的 SQL 注入(数字型注入不生效),为了打印完整的 Post 对象内容,我们修改 Post 类的 __toString 方法实现如下: class Post...更多细节,我这里就不一一介绍了,感兴趣的同学可以自行去 PHP 官方文档 查看 mysqli 扩展介绍。
> 从PHP5.0开始就不推荐使用mysql_connect()函数,到了php7.0则直接废弃了该函数,替代的函数是:mysqli_connect(); 2、mysqli(mysql improved...php $conn = mysqli_connect("127.0.0.1", "root", "", "test") or die("Mysql connect error".mysqli_connect_error...()); $res = mysqli_query($conn, "select * from user"); while ($row = $res->fetch_object()) {...> 4、mysql是非持续连接函数而mysqli是永远连接函数。mysql每次连接都会打开一个连接的进程而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销。...5、由于PDO能够支持其它非MySQL的数据库,而MySQLi专门针对MySQL设计的,所以MySQLi相对于PDO性能稍微好一些。但是PDO和MySQLi都还是没有PHP原生的MySQL扩展快。
本文实例讲述了PHP实现的mysql操作类。分享给大家供大家参考,具体如下: 首先是mysql方式 mysqli的方式: mysqli_connect) ?...die('查询失败,无法加载mysqli扩展') : null; $this->Conn = @new mysqli( $this->LocalHost, $this->LoaclUser,...is_object( $this -> Conn ) or mysqli_close( $this -> Conn ); } }
页面提示:缺少mysqli扩展,安装了扩展又提示mbstring缺少。。。...(我勒个去,rpm安装真不舒服) 我于是就挨个搜集了rpm(先给大家说下,我搜集了很长时间的,也试过从其他机器上直接拷贝各种扩展结果不能使用) 由于我的php版本是5.3.3【点击下载PHP5.3.3rpm
[_tfdUserName setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textC...
本节课我们了解下mysqli扩展及几个sql。...扩展 class mysqli{ } //数据库连接 $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /.../数据库连接错误号码 $mysqli->connect_errno //数据库连接错误内容 $mysqli->connect_error //设置编码 $mysqli->set_charset("utf8mb4...")) //执行sql语句 $result=$mysqli->query($sql); //设置结果类型 返回一行的数据 //MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH...$result->close(); #课后练习 实现一个db类 方法 __construct 连接数据库 query 执行sql getRow 获取一行 getOne 获取一个字段 getCols
首先找到php.ini,放开扩展: ? 打开php.ini ? 去掉前面的分号,因为是linux环境所以扩展改为.so文件 进入容器内docker安装扩展的目录: ? ..../docker-php-ext-install mysqli 需要什么扩展就安装什么扩展即可。...安装成功,退出docker,重启docker docker restart php 访问网站phpinfo() 即可看到对应扩展。 再次进入docker内: ?...发现扩展已经全部存在, 这里注意,如果php.ini里是 php_mysql.so或者php_mysqli.so,只需要去掉php_即可,保持扩展库的名字和php.ini的配置名字一致。
文章目录 一、扩展方法示例 二、静态扩展方法配置 三、编译静态扩展类 四、打包静态扩展类字节码到 jar 包中 五、测试使用 Thread 静态扩展类 一、扩展方法示例 ---- 为 Thread 扩展..., extensionClasses 用于配置 实例扩展方法 ; 这里配置的是 静态扩展方法 ; 配置完成后的项目结构如下 : 三、编译静态扩展类 ---- 在 Terminal 面板中 , 执行...classes ThreadExt.groovy 命令 , 编译 ThreadExt.groovy 源码到 classes 目录中 ; 其中 ThreadExt.groovy 中定义了 Thread 类的扩展方法...; 编译过程及结果如下 : 四、打包静态扩展类字节码到 jar 包中 ---- 在 执行 jar -cf thread.jar -C classes ....命令 , 将 classes 中的字节码文件按照 manifest/ 规则 , 打包到 thread.jar 文件中 ; 五、测试使用 Thread 静态扩展类 ---- 创建一个 Groovy 脚本