rubyスクリプトの.sqlファイルを文字列にロードして実行しようとしています。Ruby Mysql - .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
をし、私は常に取得:
このため、SQLがどのように見える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
それ:
CREATE TABLE `the_logs` (
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`timestamp` INT(11) NOT NULL ,
...
準備が整っていないと思いますか?私はまた、クエリを試してみました..どちらも動作しませんでした。
ご協力いただきまして誠にありがとうございます。 T
DOINGSOMEGSUBSTUFFが何をしているのかわからなくても、文全体を見ることなく何が問題なのかを知ることは難しいです。私は最初に、構文エラーの可能性が低い、些細なmysql文を試してみましょう。 – Max
括弧はすべて閉じていますか?ステートメントを閉じるには ';'を使用していますか? SQL文全体を見ることができないので、それが何であるかを正確には明らかにしない。いくつかのGUIツール(MySQL Query Browserや他のGUIツールを使用していることを前提としています)は、ステートメントの最後に ';'を付けないようにすることができます。ありがとう。 – jefflunt
私はDOSOMESTUFFを除外しました。なぜならそれがなければDOSOMESTUFFも動作しないからです。 –