如何利用MySQL2 gem通过预处理语句在Ruby中高效执行MySQL数据库操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计408个文字,预计阅读时间需要2分钟。
在MySQL中,为插入和选择查询创建预准备语句的语法如下:
sqlPREPARE statement_name FROM 'SQL语句';
例如,创建一个用于插入数据的预准备语句:
sqlPREPARE insert_stmt FROM 'INSERT INTO 表名 (列1, 列2) VALUES (?, ?)';
创建一个用于选择数据的预准备语句:
sqlPREPARE select_stmt FROM 'SELECT * FROM 表名 WHERE 条件=?';
然后,你可以使用以下命令执行这些预准备语句:
sqlEXECUTE statement_name USING value1, value2;
在你的MySQL2 gem示例中,连接对象`con`创建如下:
rubycon=Mysql2::Client.new(:host=> localhost, :username=> 用户名, :password=> 密码, :database=> 数据库名)
如何在 MySQL中为插入和选择查询创建预准备语句?我正在使用MySQL2 gem,我的连接对象如下所示:con = Mysql2::Client.new(:host => "#{ENV['DB_HOST']}", :port => '3306', :username => "#{ENV['DB_UNAME']}", :password => "#{ENV['DB_PWD']}", :database => 'dbname') 不幸的是,mysql2 gem尚未准备好语句支持.贡献者计划在不久的将来添加这样的功能,正如我们从Pull Request讨论中看到的那样:
github.com/brianmario/mysql2/pull/289
如果您的应用程序中必须准备好语句,我建议您阅读Sequel,它对预准备语句和绑定变量有很好的支持:
github.com/jeremyevans/sequel
sequel.jeremyevans.net/rdoc/files/doc/prepared_statements_rdoc.html
UPDATE
正如@lulalala在版本0.4.0 MySQL2 gem上提到的那样,支持预备语句:
statement = @client.prepare("SELECT * FROM users WHERE login_count = ?") result1 = statement.execute(1) # Binds the value 1 to the placeholder result2 = statement.execute(2) # Binds the value 2 to the placeholder statement = @client.prepare("SELECT * FROM users WHERE last_login >= ? AND location LIKE ?") result = statement.execute(1, "CA") # Binds 1 and 'CA' to the placeholders, respectively
我希望有所帮助.
本文共计408个文字,预计阅读时间需要2分钟。
在MySQL中,为插入和选择查询创建预准备语句的语法如下:
sqlPREPARE statement_name FROM 'SQL语句';
例如,创建一个用于插入数据的预准备语句:
sqlPREPARE insert_stmt FROM 'INSERT INTO 表名 (列1, 列2) VALUES (?, ?)';
创建一个用于选择数据的预准备语句:
sqlPREPARE select_stmt FROM 'SELECT * FROM 表名 WHERE 条件=?';
然后,你可以使用以下命令执行这些预准备语句:
sqlEXECUTE statement_name USING value1, value2;
在你的MySQL2 gem示例中,连接对象`con`创建如下:
rubycon=Mysql2::Client.new(:host=> localhost, :username=> 用户名, :password=> 密码, :database=> 数据库名)
如何在 MySQL中为插入和选择查询创建预准备语句?我正在使用MySQL2 gem,我的连接对象如下所示:con = Mysql2::Client.new(:host => "#{ENV['DB_HOST']}", :port => '3306', :username => "#{ENV['DB_UNAME']}", :password => "#{ENV['DB_PWD']}", :database => 'dbname') 不幸的是,mysql2 gem尚未准备好语句支持.贡献者计划在不久的将来添加这样的功能,正如我们从Pull Request讨论中看到的那样:
github.com/brianmario/mysql2/pull/289
如果您的应用程序中必须准备好语句,我建议您阅读Sequel,它对预准备语句和绑定变量有很好的支持:
github.com/jeremyevans/sequel
sequel.jeremyevans.net/rdoc/files/doc/prepared_statements_rdoc.html
UPDATE
正如@lulalala在版本0.4.0 MySQL2 gem上提到的那样,支持预备语句:
statement = @client.prepare("SELECT * FROM users WHERE login_count = ?") result1 = statement.execute(1) # Binds the value 1 to the placeholder result2 = statement.execute(2) # Binds the value 2 to the placeholder statement = @client.prepare("SELECT * FROM users WHERE last_login >= ? AND location LIKE ?") result = statement.execute(1, "CA") # Binds 1 and 'CA' to the placeholders, respectively
我希望有所帮助.

