Maison >développement back-end >tutoriel php >discuz的插件是怎么操作数据库的?

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

WBOY
WBOYoriginal
2016-06-23 13:51:471164parcourir

add.inc.php:

<?phpif(!defined('IN_DISCUZ')) {        exit('Access Denied');}$q1 = $_REQUEST['q1']; $addtime = time();	$insert_array = array(			'baankid'=>$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_前缀(若设置有)

<?phprequire './source/class/class_core.php';C::app()->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的耐心解答,谢谢!

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

都是 ./也能正常

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn