Php 插入到具有关键字命名列的错误语法中
我目前正在用PHP开发一个简单的taskplanner(使用Yii) 我将我的问题提交给Php 插入到具有关键字命名列的错误语法中,php,mysql,yii2,Php,Mysql,Yii2,我目前正在用PHP开发一个简单的taskplanner(使用Yii) 我将我的问题提交给 Yii::$app->db->createCommand(...)->execute(); ,因为我需要重新格式化无法使用的日期 $model->save(); 如果我想执行SQL字符串,它会告诉我:“您的SQL语法有错误” 最终生成的SQL字符串如下所示: INSERT INTO 'date_entry' (uid, `from`, `to`, entrydate, type
Yii::$app->db->createCommand(...)->execute();
,因为我需要重新格式化无法使用的日期
$model->save();
如果我想执行SQL字符串,它会告诉我:“您的SQL语法有错误”
最终生成的SQL字符串如下所示:
INSERT INTO 'date_entry' (uid, `from`, `to`, entrydate, type)
VALUES
('62', '2016-04-17 12:04:00', '2016-04-24 12:04:00', '2016-04-13 10:04:33', '1');
我试图将“[]和`”中的关键字从和转义到
如果我通过查询运行它,我会得到同样的错误,现在我觉得自己很笨
希望您能帮助我,谢谢:)我相信这是因为表名中有单引号
INSERT INTO `date_entry` (uid, `from`, `to`, entrydate, type)
VALUES ('62', '2016-04-17 12:04:00', '2016-04-24 12:04:00', '2016-04-13 10:04:33', '1');
单引号用于字符串,反勾号/方括号/双引号(取决于DBMS)用于保留字,我认为这是您的意图。虽然我怀疑
date\u条目
是保留字,所以不需要任何包装。我相信这是由于单引号包装了表名
INSERT INTO `date_entry` (uid, `from`, `to`, entrydate, type)
VALUES ('62', '2016-04-17 12:04:00', '2016-04-24 12:04:00', '2016-04-13 10:04:33', '1');
单引号用于字符串,反勾号/方括号/双引号(取决于DBMS)用于保留字,我认为这是您的意图。虽然我怀疑
date\u条目是保留字,所以不需要任何包装。对于mysql,您应该使用反勾号(`)而不是单引号(')对于表名:
INSERT INTO `date_entry` (uid, `from`, `to`, entrydate, type)
为保持一致性,还应引用所有字段名
同样如上所述,您可以在保存之前使用设置日期的格式。不过,这应该是另一个问题。对于mysql,表名应该使用倒勾(`)而不是单引号('):
INSERT INTO `date_entry` (uid, `from`, `to`, entrydate, type)
为保持一致性,还应引用所有字段名
同样如上所述,您可以在保存之前使用设置日期的格式。不过,这应该是另一个问题。完整的错误消息是什么?您还可以使用$model->beforeSave()根据需要格式化日期。[Err]1064-您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在“日期”项(uid,from
,to
,entrydate,type)值附近使用的正确语法('62','201'在第1行,我不熟悉Yii,但是您的表名不应该是单引号。如果有的话,它应该是反勾号,但这在这里不是必需的。您应该使用活动记录(日期格式不是问题)我知道我应该这样做,但在我使用的模型规则中,['from','to','entrydate','date],
我没有让datetime工作。如果我在数据库中保存日期,我会在2016年1月20日收到类似“2020-01-20 16:00:00”的内容。完整的错误消息是什么?您还可以使用$model->beforeSave()根据需要格式化日期。[错误]1064-您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在“日期”条目(uid,从
,到
,entrydate,type)值附近使用的正确语法('62','201'在第1行,我不熟悉Yii,但是您的表名不应该是单引号。如果有的话,它应该是反勾号,但这在这里不是必需的。您应该使用活动记录(日期格式不是问题)我知道我应该这样做,但在我使用的模型规则中,['from','to','entrydate','date],
我没有让datetime工作。如果我将日期保存在数据库中,我会在2016年1月20日收到类似“2020-01-20 16:00:00”的内容。没问题:)@hmichael没问题:)@hmichael