0

私はいくつかのselectクエリを持つrubyスクリプトを書いています。スクリプトの最初に、新しいデータベース接続を初期化しています。

db = Mysql.new 'localhost', 'root', 'pass', 'mydb', 3308

最初の選択クエリは成功しますが、2番目のクエリに到達すると、次のエラーが発生します。

`query'の場合:query:not connected(Mysql :: Error)

各クエリの前に接続初期化行をコピーすることでこれを解決できますが、これがここでの正しい解決策であるとは本当に思いません。

ありがとう、李

私の完全なスクリプトを追加する(私はこれで新しいので、惨めなスタイルで申し訳ありません):(元のスクリプトをはるかに単純な再現に置き換えました):次のコードで、「SELECT」クエリをコメントアウトしてそのままにしておくと「INSERTINTO」クエリでは、すべてがうまく機能します。しかし、コードをそのまま実行しようとすると、上記のエラーが発生します。

#!/usr/local/bin/ruby -w 

require "mysql"

dbname = "sample_db"

m = Mysql.new 'localhost', 'root', 'passw', 'sample_db', 3306

m.select_db(dbname)

m.query("CREATE TABLE words         
     (          
       german varchar(30),          
       english varchar(30),          
       french varchar(30)         
     )"        
   )

m.query("INSERT INTO words VALUES('Adler', 'eagle', 'aigle')")

results = m.query("SELECT german, english FROM words")

m.query("INSERT INTO words VALUES('Haus', 'house', 'maison')")

m.close
4

1 に答える 1

1

で答えを見つけました:

http://halyph.blogspot.com/2009/08/rails-23-migration-issues-with-mysql_26.html

これは一般的な問題のようです。libmysql.dllを次のように置き換える必要がありました:http: //instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

次に、mysqlサービスを再起動します。(インストールの問題が発生した後)すでにdllを置き換えていますが、rubyforgeのdllのみがこの問題を解決しているようです。

この問題の別の症状は、散発的なセグメンテーション違反であることに注意してください。これらもdllを置き換えた後に消えました

于 2012-05-16T21:57:11.783 に答える