关于phpcms中mysql和mysqli的区别

用phpcms开发一个考试成绩查询的小模块,用电脑上以前下载的phpcms版本为框架开发,一切顺利。想着下载一个最新版本,以后也免了升级的麻烦。于是,下载好,然后把模块目录、model数据库连接文件、模板以及配置文件都如数复制。

可是,问题出现了!

……调试折腾了几个小时,在新旧版本间切换数次,终于发现是phpcms版本导致的问题,我勒个去!

用exit()定位,继续研究,发现问题出在以下几行代码:

$result = $this->db->query($sql);

while($row=mysql_fetch_row($result)) {

  echo $row[0].‘<br />‘;    

}

这几行代码无动于衷,毫无效果……于是,又折腾……,用gettype($result)检测出$result为对象,啥对象?不知道,凌乱……

想到了var_dump()函数。

输入var_dump($result)后,出现了object(mysqli_result)。确实是个连接资源对象,但是不是mysql连接,而是mysqli连接。

用文本搜索工具搜索,发现数据库配置文件database.php里面是这样的“‘type‘ => ‘mysqli‘,”;

这就是症结所在,将mysqli改为mysql,一切正常。但肯定不能改回去呀,于是百度mysqli。

原来,mysql(过程方式)和mysqli(对象方式)都使用query查询,但读取行数据的函数不一样了。

mysql(过程方式)用$row = mysql_fetch_row( $result ) 这样的方式(原来都这样用)

而mysqli(对象方式)用$row = $result -> fetch_row();这样的方式。

改过来,一切正常!

时间: 2024-12-20 12:13:14

关于phpcms中mysql和mysqli的区别的相关文章

PHP数据库连接mysql与mysqli的区别与用法

一.mysql与mysqli的概念相关: 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2.在php5版本之前,一般是用php的mysql函数去驱动mysql数据库的,比如mysql_query()的函数,属于面向过程3.在php5版本以后,增加了mysqli的函数功能,某种意义上讲,它是mysql系统函数的增强版,更稳定更高效更安全,与mysql_query()对应的有mysqli_query(),属于面向对象,用对象的方式操作驱动mysql数据库 二.my

Mysql和Mysqli的区别

Mysql和Mysqli的区别: mysqli连接是永久连接,而mysql是非永久连接. mysql连接:每当第二次使用的时候,都会重新打开一个新的进程. mysqli连接:一直都只使用同一个进程.好处:这样就可以很大程度的减轻服务器压力.

PHP中MySQL、MySQLi和PDO的用法和区别【原创】

对于一个初学PHP的自己,对数据库的连接有着很大的疑惑,从Java转到PHP.数据库连接变了,以前只知道JDBC连接数据库,或者直接用框架调用,对于的PHP的数据库连接方式,及其应用.不是很了解,于是查阅了很多资料及自己实际操作,写下自己的一点总结笔记. PHP的MySQL扩展(优缺点) 设计开发允许PHP应用与MySQL数据库交互的早期扩展.mysql扩展提供了一个面向过程 的接口: 并且是针对MySQL4.1.3或更早版本设计的.因此,这个扩展虽然可以与MySQL4.1.3或更新的数 : 据

PHP中MySQL、MySQLi和PDO的用法和区别

PHP的MySQL扩展(优缺点) 设计开发允许PHP应用与MySQL数据库交互的早期扩展.mysql扩展提供了一个面向过程的接口: 并且是针对MySQL4.1.3或更早版本设计的.因此,这个扩展虽然可以与MySQL4.1.3或更新的数 : 据库服务端 进行交互,但并不支持后期MySQL服务端提供的一些特性. PHP的mysqli扩展 mysqli扩展,我们有时称之为MySQL增强扩展,可以用于使用 MySQL4.1.3或更新版本中新的高级特性: mysqli扩展在PHP 5及以后版本中包含: m

php中mysql和mysqli的总结

首先php-mysql 是 php 操作 mysql 资料库最原始的的拓展 而php-mysqli,字母i代表的 Improvement ,提更了相对进阶的功能. 推荐学习和使用mysqli mysql是非持继连接函数而mysqli是永远连接函数 也就是说mysql每次链接都会打开一个连接的进程 而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销 默认情况下,从php5开始,php不在自动开启对mysql的支持,而是放到扩展函数库中.所以用户需要在拓展函数库中开启mys

mysql 与 mysqli的区别

1.mysql是非持继连接函数而mysqli是永远连接函数也就是说 mysql每次链接都会打开一个连接的进程 ,而 mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销

mysql与mysqli函数在php开发中有什么区别?

Php开发中,我们常用mysql与mysqli两个函数集,这两个函数集写法上只差一个字母,但作用及功能却差之千里,下面小编就为大家分享分享这两个函数集的不同之处. 一.mysql与mysqli的概念 首先我们开看看mysql与mysqli分别是什么鬼? 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2.在php 5版本之前,一般是用php的mysql函数去驱动mysql数据库的,比如mysql_query()的函数,属于面向过程的函数. 3.在php5版本以后

php中的mysql和mysqli的总结

php中mysql和mysqli的总结 首先php-mysql 是 php 操作 mysql 资料库最原始的的拓展 而php-mysqli,字母i代表的 Improvement ,提更了相对进阶的功能. 推荐学习和使用mysqli mysql是非持继连接函数而mysqli是永远连接函数 也就是说mysql每次链接都会打开一个连接的进程 而mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销 默认情况下,从php5开始,php不在自动开启对mysql的支持,而是放到扩展函数库

mybatis中mysql和oracle的差异

1.applicationContext.xml中的配置差异: 在applicationContext.xml的数据源dataSource的配置中,mysql数据库需要心跳包的配置,而oracle中不需要,否则会报错 2.mybatis模糊查询中sql语句的差异 mysql在使用concat拼接字符串时可以直接将三者[%.占位符.%]拼到一起,而oracle则不可以,必须两两拼接,否则就会报ORA-00909: 参数个数无效的错误 mysql: <select id="selectUser