频道栏目
首页 > 数据库 > MySQL > 正文
ruby下mysql的安装与配置
2013-04-15 13:48:44         来源:liuxiaochen123的专栏  
收藏   我要投稿

ruby下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值就可以用“表名.列名”的形式出现。

点击复制链接 与好友分享!回本站首页
相关TAG标签
上一篇:mysql5.6.10关于慢查询的设置slow-query-log
下一篇:配置非安装版的mysql 5.5
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站