关于insert_update的一个不能理解的问题

[问题描述,请详细说明具体的问题]
使用框架函数:
function insert_update(array $unique, array $insert, array $update = array()){...}
我的程序:
1. 数据库有字段包含敏感字段,如`year`,`update`...
2. 调用时:insert_update($unique, $insert);,$update参数已经由程序逻辑处理到$insert,此处省略。
 
错误:
程序运行到此,报错:Fatal error: Uncaught PDOException: the database server cannot successfully prepare the statement in E:\website\api\vendor\phalapi\notorm\src\NotORM\Result.php on line
一头雾水,然后在框架中打印相关sql语句之后,
发现,INSERT 部分的字段是 裸字段,而UPDATE部分的字段是加了``符号的字段
如:INSERT  INTO table (id, year, update) VALUES (6, '2019', 1563393109) ON DUPLICATE KEY UPDATE `year` = '2019', `update`=1563393109
这里有一个问题就是 INSERT部分的字段没加``导致报出上面的错误,然后错误也看的一头雾水,在使用mysql工具时,这种会提示:[Err] 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 'year...,就能很明显的知道错误。
所以,在这里,我不确定这是我使用的姿势问题还是确实框架处理的欠妥,其次,想吐槽下这个错误提示,这样提示是为了安全么?
然后吧,我也知道在创建数据库的时候,应该避免使用这种敏感的关键字,当前,对于我这样子的非专业的后端货,难免遇到这种问题。

[接口链接,贴上接口的链接]


[源代码,请粘贴相应的PHP源代码]


[截图,补充必要的截图说明]
已邀请:

dogstar - PhalApi创始人

赞同来自:

当前框架对于数据库的支持不是特别友好,确实会存在上面的问题。关于错误提示,是底层解析问题,不是为了安全。数据库应该避免使用关键字,但框架确实对这块也没设计到位。
 
如果只需要简单使用接口,存些数据,不想维护服务器和域名,可以了解下官方的创新项目:小白接口。http://yesapi.cn/

要回复问题请先登录注册