Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RubyMySQL-load.sql文件并执行_Mysql_Ruby - Fatal编程技术网

RubyMySQL-load.sql文件并执行

RubyMySQL-load.sql文件并执行,mysql,ruby,Mysql,Ruby,我正在尝试将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

我正在尝试将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 ,
...
知道我是不是用prepare做错了吗?我也试过了。。也不管用

非常感谢您的帮助。
T

我希望,无论您使用哪个库与MySQL对话,都希望一次处理一条语句,并且一次传递多条语句


尝试以分号分隔字符串,并分别执行每个语句

如果不看完整的陈述,不知道Substuff在做什么,就很难判断出哪里出了问题。首先,我会尝试一些不太可能出现语法错误的mysql语句来缩小它的范围关闭语句吗?无法查看整个SQL语句,因此不清楚它可能是什么。一些GUI工具(假设您使用的是MySQL查询浏览器或其他GUI工具)通常让您不必使用
在语句末尾。谢谢。我遗漏了DOSOMESTUFF,因为没有它也无法工作。