标签:phalcon php mysql phalcon-orm
我有以下INSERT代码:
$reservationSuccess = $app->modelsManager->executeQuery(
"INSERT INTO MastersReservedTime (master_id, service_id, date, time, desc)
VALUES (:master_id:, :service_id:, :date:, :time:, :desc:)",
array(
'master_id' => $OrderCommit->master_id,
'service_id' => $oneService -> service_id,
'date' => $OrderCommit->date,
'time' => $startTime,
'desc' => $desc
)
);
此代码生成以下错误消息:
PHP Fatal error: Uncaught exception ‘Phalcon\Mvc\Model\Exception’ with message ‘Syntax error, unexpected token DESC, near to ‘)\r\n VALUES (:master_id:, :service_id:, :date:, :time:, :desc:)’, when parsing: INSERT INTO MastersReservedTime (master_id, service_id, date, time, desc)\r\n VALUES (:master_id:, :service_id:, :date:, :time:, :desc:) (209)’ in /var/www/api/v1.0/index.php:1827\nStack trace:\n#0 [internal function]: Phalcon\Mvc\Model\Query->parse()\n#1 [internal function]: Phalcon\Mvc\Model\Query->execute()\n#2 /var/www/api/v1.0/index.php(1827): Phalcon\Mvc\Model\Manager->executeQuery(‘INSERT INTO Mas…’, Array)\n#3 [internal function]: {closure}()\n#4 /var/www/api/v1.0/index.php(1961): Phalcon\Mvc\Micro->handle()\n#5 {main}\n thrown in /var/www/api/v1.0/index.php on line 1827
什么可能导致问题?提前致谢!
解决方法:
Desc是MySQL reserved word.当您使用Raw查询时,必须转义保留字.要在PHQL中转义它们,您必须将它们包装在方括号[]中.
像这样重写您的查询将起作用:
INSERT INTO MastersReservedTime (master_id, service_id, date, time, [desc])
VALUES (:master_id:, :service_id:, :date:, :time:, :desc:)
注意上面的[desc].
来自文档的信息:https://docs.phalconphp.com/en/latest/reference/phql.html#escaping-reserved-words
标签:phalcon,php,mysql,phalcon-orm 来源: https://codeday.me/bug/20190824/1703645.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。