phpcms mysql语句_关于phpcms中mysql和mysqli的区别

在尝试将phpcms从旧版本升级到最新版本时遇到问题,代码中的mysql_fetch_row函数无法正常工作。通过var_dump发现$result是mysqli_result对象而非mysql连接。问题在于新版本使用的是mysqli而非mysql。修改数据库配置文件中的‘type’为‘mysqli’并调整数据读取方式为$result->fetch_row(),问题得到解决。
摘要由CSDN通过智能技术生成

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

可是,问题出现了!

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

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

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

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

echo $row[0].‘
‘;

}

这几行代码无动于衷,毫无效果……于是,又折腾……,用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();这样的方式。

改过来,一切正常!

原文:http://www.cnblogs.com/cblx/p/5160897.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值