业务经理

微信扫描以上二维码

028-61286886

技术咨询

我写一条自定义sql语句,表名用了@#代替,好像执行的时候报错?

迅睿框架 更新 2020-12-07 19:23:36 tvv

请问php文件,我写一条自定义sql语句,表名用了@#代替,好像执行的时候报错?@#只能用到模板文件中吗?

sql语句没有问题,我在adminphp下测试过!

\Phpcmf\Service::M()->db->query("UPDATE @#1_news as a,@#1_wgone as b SET b.updatetime ='2020-12-1' where a.title=b.title");

方案

  • 迅睿框架创始人 #1 · 2020-12-07 14:49:42
    满意答案
    表名@#只能用在模板的sql标签里面,你在php里面需要写上前缀函数
  • tvv #2 · 2020-12-07 14:52:10
    前缀函数?是完整的数据库表名吗?
  • 黄老邪 #3 · 2020-12-07 14:55:48
    表前缀是:.$this->prefix.
  • 黄老邪 #4 · 2020-12-07 14:56:35
    SELECT * FROM `".$this->prefix."member_menu` WHERE
  • 迅睿框架技术-实习 #5 · 2020-12-07 14:58:35
    \Phpcmf\Service::M()->db->prefix
  • tvv #6 · 2020-12-07 15:21:55
    \Phpcmf\Service::M()->db->query("UPDATE '".$this->prefix."1_news' as a,'".$this->prefix."1_wgone' as b SET b.updatetime ='2020-12-1' where a.id=b.cid");报错,哪里错了呢?CRITICAL - 2020-12-07 15:11:43 --> Using $this when not in object context#SQL:SELECT *FROM `dr_cron`WHERE `id` = 50#URL:http://172.16.12.19/admin.php?c=cron&m=do_add&id=50#AGENT:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36#REFERER:http://172.16.12.19/admin.php?c=cron&m=index
  • 迅睿框架技术-实习 #7 · 2020-12-07 15:36:14
    明显错了
  • 黄老邪 #8 · 2020-12-07 15:41:56
    .updatetime ='2020-12-1 错了,这里应该是10位的整数,来是格式化后的时间
  • 黄老邪 #9 · 2020-12-07 15:42:15
    不是
  • 迅睿框架技术-实习 #10 · 2020-12-07 15:42:37
    $this->prefix这个写错了,改成五楼的写法
  • tvv #11 · 2020-12-07 15:44:52
    \Phpcmf\Service::M()->db->query("UPDATE '".$this->prefix."1_news' as a,'".$this->prefix."1_wgone' as b SET b.updatetime =unix_timestamp(NOW()) where a.id=b.cid");我改时间格式了,还是报错!
  • 黄老邪 #12 · 2020-12-07 15:47:53
    我自己的是这样写的

  • 易学习 #13 · 2020-12-07 16:01:57
    同意十楼的观点
  • tvv #14 · 2020-12-07 16:05:56
    \Phpcmf\Service::M()->db->prefix(); $sql="UPDATE '".$this->prefix."1_news' as a,'".$this->prefix."1_news_form_tet' as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid"; \Phpcmf\Service::M()->db->query($sql);CRITICAL - 2020-12-07 15:57:21 --> Call to undefined method CodeIgniter\Database\MySQLi\Connection::prefix()
  • 南哥 #15 · 2020-12-07 16:29:55
    $sql="UPDATE '".\Phpcmf\Service::M()->db->prefix."1_news' as a,'".$this->prefix."1_news_form_tet' as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid";十楼的方法啊
  • tvv #16 · 2020-12-07 16:49:30
    $sql="UPDATE '".\Phpcmf\Service::M()->db->prefix."1_news' as a,'".$this->prefix."1_news_form_tet' as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid"; $rt = \Phpcmf\Service::M()->db->query($sql);if ($rt) { // 成功} else { //失败 echo \Phpcmf\Service::M()->db->error();}还是这个错误提示CRITICAL - 2020-12-07 16:40:50 --> Using $this when not in object context
  • 夏侯渊 #17 · 2020-12-07 16:54:04


    同意十楼的观点
  • tvv #18 · 2020-12-07 16:58:21
    $sql="UPDATE '".\Phpcmf\Service::M()->db->prefix."1_news' as a,'".\Phpcmf\Service::M()->db->prefix."1_news_form_tet' as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid"; $rt = \Phpcmf\Service::M()->db->query($sql);if ($rt) { // 成功} else { //失败 echo \Phpcmf\Service::M()->db->error();} ERROR - 2020-12-07 16:48:37 --> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1_news' as a,'1_news_form_tet' as b SET b.qy =unix_timestamp(NOW()) where a.id=' at line 1#SQL:UPDATE '1_news' as a,'1_news_form_tet' as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid
  • 易学习 #19 · 2020-12-07 16:59:38
    撒比了,sql语法谱写错误了


    先去phpmyadmin工具里面运行一下吧
  • tvv #20 · 2020-12-07 17:06:14
    UPDATE test.dr_1_news as a,test.dr_1_news_form_tet as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid数据库里操作没问题啊!
  • 步兵过河 #21 · 2020-12-07 17:07:40
    UPDATE test.dr_1_news as a,test.dr_1_news_form_tet as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cidUPDATE '1_news' as a,'1_news_form_tet' as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid你对比啊,少了什么,长度都不一样了,而且还多了‘号
  • tvv #22 · 2020-12-07 17:20:13
    $sql="UPDATE test.dr_1_news as a,test.dr_1_news_form_tet as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid"; $rt = \Phpcmf\Service::M()->db->query($sql);if ($rt) { // 成功} else { //失败 echo \Phpcmf\Service::M()->db->error();}我用原数据库名称放进去都报错,提示执行失败?为啥啊?数据库里是成功的!
  • 易学习 #23 · 2020-12-07 17:27:02
    $sql="UPDATE dr_1_news as a,dr_1_news_form_tet as b SET b.qy =unix_timestamp(NOW()) where a.id=b.cid";
    $rt = \Phpcmf\Service::M()->db->query($sql);
    if ($rt) {
       // 成功
    } else {
        //失败
        echo \Phpcmf\Service::M()->db->error();
    }
  • tvv #24 · 2020-12-07 19:23:36
    迅睿框架创始人:谢谢了,我解决了!

迅睿系统漏洞

GEO系统
GEO系统(2026-09-15)
运营客户端,防止误触阴影处关闭对话框
独立站群系统
独立站群系统(2026-09-14)
子站独立部署时修复同步附件失败问题
在线客服
在线客服(2026-09-13)
修复删除会话报错问题 删除会话时联动删除聊天图片
在线考试竞赛系统
在线考试竞赛系统(2026-09-12)
增加投票功能 考试功能拓展 注意:更新后需要执行系统更新,更新数...
网上信箱
网上信箱(2026-09-12)
修复新版本兼容问题
GeoSeo收录宝
GeoSeo收录宝(2026-09-12)
1 优化Update.php文件,解决版本在线升级不完整问题 2 ...
GeoSeo工具箱
GeoSeo工具箱(2026-09-11)
修正历史记录推送
微信系统
微信系统(2026-09-11)
增加数据统计总览界面 账号管理增加服务和公众号的区别 菜单管理支持更...
答题系统
答题系统(2026-09-11)
一站式在线答题系统,支持真题考试、题库练习和错题本,适合培训、考证、...
阿里云滑动验证码
阿里云滑动验证码(2026-09-10)
采用阿里云验证码替换迅睿系统自带的图片验证码和滑动验证码。后台设置方...