业务经理

微信扫描以上二维码

028-61286886

技术咨询

读取类目的SQL报“You must set the database table to be used with your query”

迅睿框架 更新 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
    满意答案
     $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
    谢谢答复!$hasOneRs = \Phpcmf\Service::M()->db->query($hasOneSql);
    $hasOne = $hasOneRs->getRowArray();我在代码中也对结果进行判断,表现出来的现象是: 如果表中存在数据,则能正常返回一维数组; 如果表中不存在数据,就直接报错,而不是返回null。官方研发技术-张伟
  • 小波工作室-易学习 #3 · 2021-03-03 14:41:02
    非常完美
  • 小黄人 18html #4 · 2021-03-03 14:58:49
    加个 IF 才完美!

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

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


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

迅睿系统漏洞

AI文章生成器
AI文章生成器(2026-09-20)
任务拆分独立配置 新增AI生成关键词 新增指令模板 新增品牌信...
GEO系统
GEO系统(2026-09-20)
后台 AEO 与运营端对齐:区域、跑批、CSV、补强、剧本均可在迅睿...
多语言翻译Seolang
多语言翻译Seolang(2026-09-18)
1. HTML lang 无需修改模板,自动适配当前语种页面 lan...
GeoSeo工具箱
GeoSeo工具箱(2026-09-18)
修正菜单规范
后台二次登陆验证
后台二次登陆验证(2026-09-18)
新增邮箱验证 新增短信验证
京东云短信
京东云短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
创蓝短信
创蓝短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
火山引擎短信
火山引擎短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
外贸多语言建站
外贸多语言建站(2026-09-17)
优化独立内容过滤机制