Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何在RubyonRails中编写insert语句?_Database_Ruby On Rails 3_Updating_Insert Query - Fatal编程技术网

Database 如何在RubyonRails中编写insert语句?

Database 如何在RubyonRails中编写insert语句?,database,ruby-on-rails-3,updating,insert-query,Database,Ruby On Rails 3,Updating,Insert Query,我在RubyonRails上运行insert语句。但失败了。代码如下: class BookmarkController < ApplicationController def index if request.post? @user_new = Bookmark.new(params[:user_new]) tags = @user_new.tags.split(",") @user_new = Bookmark.new(params[:user_n

我在RubyonRails上运行insert语句。但失败了。代码如下:

class BookmarkController < ApplicationController
  def index

    if request.post?
    @user_new = Bookmark.new(params[:user_new])
    tags = @user_new.tags.split(",")
    @user_new = Bookmark.new(params[:user_new])
    query = "INSERT INTO bookmark (title , url, tags) VALUES (#{@user_new.title}, #{@user_new.url}, #{tags[0]})  "

    Bookmark.connection.execute(query);

    end   

  end

有谁能建议我使用SQL insert语句插入记录的正确方法吗?

您需要在“值”数据上加引号。比如:

query = "INSERT INTO bookmark (title , url, tags) VALUES ('#{@user_new.title}', '#{@user_new.url}', '#{tags[0]}')  "

您需要在“值”数据上加引号。比如:

query = "INSERT INTO bookmark (title , url, tags) VALUES ('#{@user_new.title}', '#{@user_new.url}', '#{tags[0]}')  "

假设
Bookmark
ActiveRecord
的子类,AR将为您保存此内容-无需编写自定义SQL-
save
方法将处理此问题。您可以阅读有关ActiveRecord功能的更多信息

class BookmarkController
假设
Bookmark
是从
ActiveRecord
子类化的,AR将为您保存此内容-无需编写自定义SQL-
save
方法将处理此问题。您可以阅读有关ActiveRecord功能的更多信息

class BookmarkController
您可以编写

    MOdel.connection.insert("INSERT INTO table_name(fields) VALUES('value')")
它正在工作…

你可以写

    MOdel.connection.insert("INSERT INTO table_name(fields) VALUES('value')")

正在工作…

非常感谢。工作正常。不要使用此代码!这是SQL注入的一个经典示例。您的用户将能够在您的数据库上执行任意SQL命令。这个答案在这里适用,并且语法正确,但是正如前面提到的,您不想在这里执行它,因为它不安全,而且有更好的Rails方法来完成同样的事情。非常感谢。工作正常。不要使用此代码!这是SQL注入的一个经典示例。您的用户将能够在数据库上执行任意SQL命令。这个答案在这里有效,语法正确,但正如前面提到的,您不想在这里执行,因为它不安全,而且有更好的Rails方法来完成同样的事情。原始SQL不应该出现在控制器中。此外,您还复制了ActiveRecord附带的功能。我建议不要在控制器中读取.Raw SQL。此外,您还复制了ActiveRecord附带的功能。我建议阅读@Mandeep_Singh如何提交/保存此插入?@Mandeep_Singh如何提交/保存此插入?