欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

discuz的插件是怎么操作数据库的?

程序员文章站 2022-05-12 11:54:45
...
add.inc.php:
$q1,	);	$cone = DB::insert('pre_xyk',$insert_array);?> 


echo $q1; 这样是有输出的,但是怎么写不进数据的?

DZ的插件是怎么操作数据库的?

add.inc.php怎么写才正确?先谢谢了!


回复讨论(解决方案)

require './source/class/class_core.php';C::app()->init();$insert_array = array(	'classname'=>'test',	'uid'=>1,	'dateline'=>time());if(DB::insert('home_class',$insert_array)){	echo 'ok';}/*ok*/

插入不成功discuz应该报错,怎么没有错误提示?
猜测:
1、class_core.php没有引入,并且没有初始化,不能使用DB调用
2、pre_xyk是表全名,默认是不要pre_前缀(若设置有)

init(); $insert_array = array(    'baankid'=>1,);if(DB::insert('xyk',$insert_array)){    echo 'ok';}?> 


就算这样执行也没有写入,
插件块那里用不用定义add.inc.php?

不成功总有提示吧,就是错误报告
你单独访问这个页面试试,成不成功

单独访问这个页面,没有任何输出,一片空白

include '../source/class/class_core.php';$discuz = & discuz_core::instance();$discuz->init();print_r($_G);


这样是有变量输出的,为什么:

include '../source/class/class_core.php';

../就有输出,./没有输出呢?

require '../../../source/class/class_core.php';//引入系统核心文件$discuz = & discuz_core::instance();//以下代码为创建及初始化对象$discuz->cachelist = $cachelist;$discuz->init();//以上是调用discuz公共执行类等核心代码//写入数据库$arr=array();$arr['userid'] = $userid;$count1=DB::insert('xyk',$arr);


这样已经能写入了,有点不明白,为什么这样就得:
require '../../../source/class/class_core.php';//引入系统核心文件


这样就不得:
require './source/class/class_core.php';//引入系统核心文件


路径没设好?

..是上一级目录开始查找
.是当前目录开始查找

嗯 非常感谢jam00的耐心解答,谢谢!

但是我见所有的插件都不会用 ../../../

都是 ./也能正常

目录层数都一样,为什么我的就必需用 ../../../ ?用绝对路径为什么也不得?