联系官方销售客服

1835022288

028-61286886

求助 版主:官方研发技术组
读取类目的SQL报“You must set the database table to be used with your query”
类型:迅睿CMS 更新时间:2021-03-13 10:19:33

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();语句。

    


回帖
  • 官方研发技术-张伟
    #1楼    官方研发技术-张伟
    2021-03-03 11:04:58
    Chrome 0
     $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);
           
           var_dump($hasOneRs->getResultArray());
    https://www.xunruicms.com/codeigniter/database/results.html
    满意答案
  • 飞鱼
    #2楼    飞鱼
    2021-03-03 14:35:16
    Chrome 0
    谢谢答复!$hasOneRs = \Phpcmf\Service::M()->db->query($hasOneSql);
    $hasOne = $hasOneRs->getRowArray();我在代码中也对结果进行判断,表现出来的现象是: 如果表中存在数据,则能正常返回一维数组; 如果表中不存在数据,就直接报错,而不是返回null。官方研发技术-张伟
  • 小波工作室-易学习
    #3楼    小波工作室-易学习
    2021-03-03 14:41:02
    Chrome 0
    非常完美
  • 小黄人 18html
    #4楼    小黄人 18html
    2021-03-03 14:58:49
    Chrome 0
    加个 IF 才完美!

    参考文档:《数据库操作》
  • 飞鱼
    #5楼    飞鱼
    2021-03-03 15:12:20
    Chrome 0
    我把这段的完整代码贴一下哈~最大的问题就是这个语句查询数据为空时,也同时报系统错误

  • 官方研发技术-张伟
    #6楼    官方研发技术-张伟
    2021-03-03 15:22:06
    Chrome 0
    这个语句查询数据为空时,也同时报系统错误!?报什么错误??,理论上数据为空时不会报错啊
  • 飞鱼
    #7楼    飞鱼
    2021-03-03 15:27:07
    Chrome 0


    系统错误,就是按理应该不会报错,我也就是在操作类目表这里遇到,比较纳闷。这个语句去直接执行了也不会有什么问题,所以我比较怀疑,是不是前面有缓存之类问题,或者是遇到什么BUG(@反馈BUG)了?
    官方研发技术-张伟
  • 官方研发技术-张伟
    #8楼    官方研发技术-张伟
    2021-03-03 15:29:32
    Chrome 0
    我试过,没有错误提示。0000会不会是mysql数据库故障了
  • 吃不痴
    #9楼    吃不痴
    2021-03-11 14:40:29
    Chrome 0
    学习一下
  • 飞鱼
    #10楼    飞鱼
    2021-03-13 10:19:33
    Chrome 0
    @官方研发技术-张伟:问题产生原因未知,感谢快速反馈及普及查询结果解析语法