请选择 进入手机版 | 继续访问电脑版

通达用户社区[OA论坛]

 找回密码
 立即注册
搜索
查看: 1089|回复: 0

二开札记

[复制链接]
发表于 2019-6-17 22:32:39 | 显示全部楼层 |阅读模式

把二开过程中遇到的难题,在这里与网友讨论求解;
把二开过程中得到的体验,在这里与网友分享求实;


先开个头,以后慢慢添加。

当初做业务引擎需要在flow_hook表中添加一条记录,SQL语句是这样的:

  1. $query= "INSERT INTO flow_hook (hname,hdesc,hmodule,plugin,status,map,condition,condition_set,system) VALUES(…………);"
复制代码


运行结果,就是报错,查了错误日志:
错误#1064: 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……

还是语焉不详,是语法错误,但错在哪呢?多次折腾,发现只要不写condition字段,就不出错。当时因为急着用,就绕道走啦,不写就不写。
先告诉用户一个权宜之计,使用业务引擎的时候,把触发条件手工添加上,一样用。回过头来,慢慢找。
反复打量着这条语句,忽然灵光一现——condition是SQL语句的关键字呀!怪不得系统犯傻呢!
找到原因就好办。
一是构建数据库表时,应尽量避免使用SQL的关键字做字段名。二是像这样既成的表,你不用也得用,无法去避免,那就把关键字用“`”号括起来。
正确的写法,就是:

  1. $query= "INSERT INTO flow_hook (hname,hdesc,hmodule,plugin,status,map,`condition`,condition_set,system) VALUES(…………);"
复制代码


回复

使用道具 举报

小黑屋|手机版|Archiver|通达用户社区[OA论坛] ( 京ICP备14032129号

GMT+8, 2019-12-6 09:13 , Processed in 0.105722 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表