联系官方销售客服
1835022288
028-61286886
PHP程序里面
1、功能:数据入库后,在代码里实现自动更新类目(类目已存在则读取类目ID,不存在则创建该类目);
2、问题:读取类目的SQL报“You must set the database table to be used with your query”;
3、方法:
//查询类目是否已存在,存在则返回ID,不存在则插入
$hasOneSql = 'SELECT `id`, `pid`, `pids`, `name`, `dirname`, `pdirname`, `childids` FROM `dr_1_tp_category` WHERE `pid`=0 AND `pids`=0 AND `name`="'.$oneCat.'"';
$hasOneRs = \Phpcmf\Service::M()->db->query($hasOneSql);
或者
$hasOneRs = \Phpcmf\Service::M()->db->table("1_tp_category")->select("id,pid,pids,name,dirname,pdirname,childids")->where("pid=0 and pids=0 and name='".$oneCat."'")->get();
4、语句:
SELECT `id`, `pid`, `pids`, `name`, `dirname`, `pdirname`, `childids` FROM `dr_1_tp_category` WHERE `pid`=0 AND `pids`=0 AND `name`="女装"
5、问题:
这个SQL在"SQL手册“执行都没什么问题,那是这里\Phpcmf\Service::M()->db->query()或\Phpcmf\Service::M()->db->table()->select()->get()有什么前提吗?在这个语句执行之前,我只有一条查询产品\Phpcmf\Service::M()->db->table("1_tp")->where("item_id", $pid)->get();语句。
$hasOne = $hasOneRs->getRowArray();我在代码中也对结果进行判断,表现出来的现象是: 如果表中存在数据,则能正常返回一维数组; 如果表中不存在数据,就直接报错,而不是返回null。官方研发技术-张伟
参考文档:《数据库操作》
系统错误,就是按理应该不会报错,我也就是在操作类目表这里遇到,比较纳闷。这个语句去直接执行了也不会有什么问题,所以我比较怀疑,是不是前面有缓存之类问题,或者是遇到什么BUG(@反馈BUG)了?
官方研发技术-张伟