ruby下MySQL的安装与配置
Jun 07, 2016 pm 05:28 PMruby on rails安装mysql数据库,在系统里安装mysql:下载mysql软件,在百度上很多下载地址可以下载,或者进入mysql中文官方网站下
ruby on rails安装mysql数据库
1、在系统里安装mysql:下载mysql软件,在百度上很多下载地址可以下载,或者进入mysql中文官方网站下载安装软件,我选择的是5.1.62版本的
安装mysql,设置默认字符集为utf-8
将mysql安装目录(默认C:/program files/mysql)之bin目录下的libmySQL.dll拷贝至C:/ruby/bin目录下
2、安装mysql相关驱动:
gem install mysql-2.8.1-x86-mingw32.gem
3、将ruby安装目录的lib/ruby/gems/1.8/gems/mysql-2.7.1-mswin32/ext/目录下的mysql_api文件拷贝至ruby安装目录下的/lib/ruby/site_ruby/1.8/i386-msvcrt/目录下。
4、测试ruby连接mysql
新建文本test_mysql.rd后输入代码:
require "mysql"
puts("hello,mysql")
命令行执行ruby test_mysql.rd
输出结果:
hello,mysql
则mysql连接成功
写一段代码:
require 'DBcon'
begin
dbh = Mysql.real_connect("localhost", "root", "sa","makedish", 3306)------# 这里调用Mysql模块的real_connect方法。连接数据库本机:用户名:root 密码:sa 数据库:makedish 端口:3306
dbh.query("drop table if exists test_foolfish") --- #ruby执行语句
dbh.query("create table test_foolfish(id int,name varchar(20))")
dbh.query("insert into test_foolfish values(1,'你好')")
dbh.query("insert into test_foolfish values(2,hello)")
printf "%d rows were insertedn",dbh.affected_rows ----#affected_rows返回受影响的行数
res=dbh.query("SELECT name FROM test_foolfish")
puts "===============n"
res.each_hash(with_table = true) do |row|
printf "%d,%sn",row["test_rb.id"],row["test_rb.name"]
end
puts "===============n"
puts "Server version:"+dbh.get_server_info
rescue Mysql::Error=>e
puts "Error code:#{e.errno}"
puts "Error message:#{e.error}"
puts "Error SQLSTATE:#{e.sqlstate}" if e.respond_to?("sqlstate")
ensure
dbh.close if dbh
end
ruby当中对数据库存在两种操作:一种是不用返回结果集的(例如insert,update,delete等等)一种是需要返回结果集的(如select show等)。对于不返回结果集的操作,我们只需要使用dbh.query方法,,传入需要执行的sql语句执行即可。
对于另一种需要返回结果集的则相对麻烦一些。执行完上面类似的语句之后,我们需要对结果集进行处理。我们可以将结果集一数组或者hash形式展现。这里我们使用hash方式展现。
res=dbh.query("SELECT name FROM test_foolfish")
puts "===============\n"
res.each_hash(with_table = true) do |row|
printf "%d,%s\n",row["test_rb.id"],row["test_rb.name"]
end
each_hash方法当中添加with_table = true参数可以保证在执行多表查询的时候,多张表具有相同字段的尴尬。这样我们hash的key值就可以用“表名.列名”的形式出现。

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
