\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();
}
同意十楼的观点
先去phpmyadmin工具里面运行一下吧
$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(); }