我的C ++程序使用sql查询读取文件并尝试执行它。当我使用phpmyadmin执行查询时,它可以工作,但是在我的程序中执行时,它最终会出现以下错误:
代码:
ifstream create_file ("create.sql");
if (create_file.is_open())
{
char * create;
int length;
create_file.seekg (0, ios::end);
length = create_file.tellg();
create_file.seekg (0, ios::beg);
create = new char [length];
create_file.read (create,length);
create_file.close();
cout << "Executing query: " << endl;
cout.write (create,length);
cout << "EOF query" << endl;
if(mysql_query(mysql, "CREATE DATABASE grant_db")) {
fprintf(stderr, "Failed to create database: Error: %s\n",
mysql_error(mysql));
}
if(mysql_select_db(mysql, "grant_db")) {
fprintf(stderr, "Failed to select database: Error: %s\n",
mysql_error(mysql));
}
if(mysql_query(mysql, create)) {
fprintf(stderr, "Failed to create table: Error: %s\n",
mysql_error(mysql));
mysql_query(mysql, "DROP DATABASE grant_db");
}
delete[] create;
} else cout << "Unable to open file 'create.sql'.";
感谢您的帮助!
答案 0 :(得分:2)
您不能在单个mysql_query调用中放置多个语句。您需要一次执行一个,默认情况下至少执行一个。请参阅mysql_query文档。
答案 1 :(得分:0)
我敢打赌它不会处理/* ... */
评论。请尝试使用--
条评论。