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 ,
...

知道如果我使用准备做错了吗?我也试过查询..也没有用。

任何帮助是极大的赞赏。吨

4

1 回答 1

2

我希望您用来与 MySQL 对话的任何库都希望一次处理一个语句,并且您一次将几个语句传递给它。

尝试用分号分割字符串并单独执行每个语句。

于 2012-04-08T13:27:29.587 回答