gpt4 book ai didi

mysql - rails : MySQL2 Error when hitting the finder of a model

转载 作者:行者123 更新时间:2023-11-29 00:12:09 25 4
gpt4 key购买 nike

我用 Rails 做了这个:

User.find(:all, :conditions => ["character = ?", character])

character 是一个 Fixnum,正如您通过它为 sql 翻译的方式所看到的那样。需要一个 Fixnum。

然后我得到这个错误:

Mysql2::Error: 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 '= 5)'
at line 1: SELECT `users`.* FROM `users` WHERE (character = 5)

我有点困惑,绝对不明白这行 sql 可能有什么问题。

请帮忙。

你的

乔恩

最佳答案

问题是 character 是 mysql 中的关键字。如果你用反引号转义它应该可以工作,例如

User.find(:all, :conditions => ["`character` = ?", character])

当你做一个 rails find 时

User.where(:character => character)

正如 Rich Peck 所建议的那样,rails 会自动转义所有字段的名称以防止出现此问题:您可以在日志中看到它这样做。

编辑:从长远来看,您可能会发现更改列名称的麻烦较小。

关于mysql - rails : MySQL2 Error when hitting the finder of a model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24548887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com