我的rails代码很简单(代码和sql输出改为使其通用)
Router.new(
:name => params[:data][:name],
:subid => params[:data][:subid],
:info => params[:data][:info],
:parent => @parent)
Rails生成INSERT sql
INSERT INTO `mydb` (`name`, `subid`, `info`, `parent_id`, `created_at`, `updated_at`)
VALUES (?, ?, ?, ?, ?, ?) [["name", "myname"], ["subid", ""], ["info", ""], ["parent_id", 2], ["created_at", "2016-09-09 06:06:37"], ["updated_at", "2016-09-09 06:06:37"]]
这是我得到的错误:
Mysql ::错误:不正确的整数值:''对于第1行的列'parent_id':INSERT INTO mydb(name,subid,info,parent_id,created_at,updated_at)VALUES(?,?,?,?,? ,?)
看起来mysql不喜欢这种类型的语法。我有5.6.32版。
当我将命令直接修改为“VALUES”时,值看起来很有用。有没有办法回到在“VALUES”中插入值的格式,或者无需重新创建INSERT语句即可使插入工作。
编辑:我认为这不是实际的SQL。有没有办法打印实际的SQL?