0

Rubyスクリプトの.sqlファイルを文字列にロードして実行しようとしています。

何らかの理由で構文エラーが発生しますが、ステートメントをコピーして mysql に直接貼り付けると、問題なく動作します。

これが私がそれを行う方法です:

text = File.read(src_sql_file)
new_text = text.DOINGSOMEGSUBSTUFF
@dbh.select_db(dbname)
sql = @dbh.prepare(new_text) 
sql.execute()

私もこれを試しました:

sql = @dbh.prepare(new_text)  do |sth|
  sth.execute()
end

そして私はいつも得る:

Error message: You have an error in your SQL syntax; check the manual that corresponds to 
your MySQL server version for the right syntax to use near

'CREATE TABLE `the_logs` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PR' at line 5

このためのSQLは次のようになります。

CREATE TABLE `the_logs` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`timestamp` INT( 11 ) NOT NULL ,
...

準備を使用してこれを間違っているかどうかはわかりますか? 私もクエリを試しました..どちらもうまくいきませんでした。

どんな助けでも大歓迎です。T

4

1 に答える 1

2

MySQL と対話するために使用しているライブラリは、一度に 1 つのステートメントを処理する必要があり、一度に複数のステートメントを渡していると思います。

文字列をセミコロンで分割し、各ステートメントを個別に実行してみてください。

于 2012-04-08T13:27:29.587 に答える