临界点

db_mysqli.class.php[bug fixed]

源文件不记得是从哪儿来的了,应该是在论坛里某位老哥发的。

用它这个版本,后台添加分类,添加文章都会覆盖掉原来id为2的分类/文章。

追踪代码以后发现是在maxid获取有问题,具体是在mysql_query 这个方法在mysqli中是没有直接替换函数的。修改的地方就是 db_mysqli 里的 query 方法,原来的问题语句已经注释了,可以对比。

奇怪的是,竟然没有人发现这个问题吗?还是几乎没人用?

1 个附件 售价 大小 下载 时间

db_mysqli.class(bug fixed).zip 1 金币 5.72K 3 次 5月前

#1楼
发帖时间:5月前   |   查看数:0   |   回复数:5
ikezhuo
文件名是不是多了个"i"
db_mysql.class.php
5月前 #2楼
临界点
引用 ikezhuo:

文件名是不是多了个"i" db_mysql.class.php


不是,在更新的php版本里,mysql_* 已经被废弃,php7里直接被删除了,mysqli 是新版的接口函数(面向过程)和方法(面向对象)。
5月前 #3楼
临界点
引用 ikezhuo:

文件名是不是多了个"i" db_mysql.class.php


配置文件里面需要把 type 改为 mysqli
5月前 #4楼
ikezhuo
引用 临界点:

配置文件里面需要把 type 改为 mysqli


可否直接修改 kongphp.php 文件?

if(DEBUG) {
	include KONG_PATH.'base/base.func.php';
	include KONG_PATH.'base/core.class.php';
	include KONG_PATH.'base/debug.class.php';
	include KONG_PATH.'base/log.class.php';
	include KONG_PATH.'base/model.class.php';
	include KONG_PATH.'base/view.class.php';
	include KONG_PATH.'base/control.class.php';
	include KONG_PATH.'db/db.interface.php';
	include KONG_PATH.'db/db_mysql.class.php';
	include KONG_PATH.'cache/cache.interface.php';
	include KONG_PATH.'cache/cache_memcache.class.php';
}else{
	$runfile = RUNTIME_PATH.'_runtime.php';
	if(!is_file($runfile)) {
		$s  = trim(php_strip_whitespace(KONG_PATH.'base/base.func.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'base/core.class.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'base/debug.class.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'base/log.class.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'base/model.class.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'base/view.class.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'base/control.class.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'db/db.interface.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'db/db_mysql.class.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'cache/cache.interface.php'), "<?ph>\r\n");
		$s .= trim(php_strip_whitespace(KONG_PATH.'cache/cache_memcache.class.php'), "<?ph>\r\n");
		$s = str_replace('defined(\'KONG_PATH\') || exit;', '', $s);
		file_put_contents($runfile, '<?php '.$s);
		unset($s);
	}
	include $runfile;
}
core::start();


5月前 #5楼
临界点
引用 ikezhuo:

可否直接修改 kongphp.php 文件? if(DEBUG) { include KONG_PATH.'base/base.func.php'; include KONG_PATH.'base/core.class.php'; include KONG_PATH.'base/debug.class.php'; include KONG_PATH.'base/log.clas


如果改核心文件,还不如直接替换。
把 db_mysqli.class.php 名称改为 db_mysql.class.php,文件里面的类名称 db_mysqli 修改为 db_mysql ,然后直接替换掉原来的 db_mysql.class.php。
5月前 #6楼
游客组