2009-09-15 3 views
5

Ruby에서 MySQL 쿼리에 문제가 있습니다. 나는 'mysql'gem을 사용한다.Ruby를 이용한 다중 MySQL 쿼리

구성이 별도의 yml 파일에 저장되고 @conf 변수에로드됩니다.

# connect to the database 
Mysql::new(@conf['sql_host'], @conf['sql_user'], @conf['sql_password'], @conf['sql_base']) 

# it's ok when we're doing this 
my.query("SELECT * FROM `my_table`") do |e| 
    # code 
end 

# Maybe, I've missed something here... 

# really this query will insert value into other table, used SELECT just for testing 
# this throws exception: 'query: not connected' 
my.query("SELECT * FROM `my_table_2`") 

윈도우 XP
루비 1.8.6 (2008-08-11 패치 레벨 287) I386-MSWIN32]
MySQL은 (2.8.1, 2.7.3)
MySQL은 : 이 내 코드입니다 클라이언트 버전 : 5.0.51a

두 번째 쿼리에서 'query : not connected'가 throw됩니다.

답변

7

우선, 프로그램이 정상적으로 보입니다. 나는 libmysql.dll 버전 문제가 있는지 100 % 확신합니다.

Mysql 설치 프로그램에서 제공 한 libmysql.dll을 사용하여 이것을 재현 할 수 있습니다.

이 파일을 다운로드 및 C 대체 : \ 루비 빈 \

http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

및 변경없이 프로그램을 다시 실행 \. here

+0

좋아요! 감사! 전에 libmysql 문제가 있었지만 rubyforge가 아닌 Mysql 설치에서 복사했습니다. 그것은 작동합니다! 네! – Andrew

+0

감사 Jirapong. 수정 사항을 명확히하기 위해 5.0.x 라이브러리가 작동합니다. 나는 5.1.42 서버와 5.0.4 libmysql.dll을 ruby ​​/ bin에 사용하고있다. – Sixty4Bit

+0

감사합니다! 나는 하루 종일 다른 ORM 래퍼를 사용해 왔고 마침내 Ruby Mysql을 직접 사용하지 않고 동일한 문제에 부딪쳤다. 나도 잘못된 버전으로 밝혀졌고,이 중 하나가 해결되었습니다 :-) – Mika

0

모든 Windows 버전에서 Ruby의 mysql 보석을 사용하려고 시도했을 때 측정 할 수없는 문제가 발생했습니다. 내가 말할 수있는 것부터, 당신이 스스로 컴파일하는 방법을 알아낼 수 없다면 그것은 간단하게 작동하지 않습니다 (이것은 엉덩이의 왕가름입니다).

ActiveRecord을 ORM (object relational mapping) 레이어로 사용하고 Windows에서 SQLite 또는 다른 데이터베이스를 사용하여 개발 한 다음 MySQL을 사용하여 Linux에서 프로덕션 환경을 실행하고 계십니까? 이것은 내가 잠시 동안 가지고 갔던 해결책이고 그것은 꽤 잘 해결되었습니다.

+0

주요 문제에 대한

관련 문제와 신용은 데이터베이스가 이미 완료되어 실행되고 있다는 점이다. 저는이베이스를위한 작은 도구를 쓸 것입니다. 데이터베이스 쿼리 만 실행하면됩니다. 다른 방법이 있습니까? – Andrew