C ++ MySQL Sql синтаксическая ошибка, когда синтаксис правильный - PullRequest
0 голосов
/ 05 марта 2011

моя программа на C ++ читает файл с SQL-запросом и пытается его выполнить.Когда я выполняю запрос с использованием phpmyadmin, он работает, но при выполнении в моей программе он заканчивается следующей ошибкой: SQL Syntax error

Код:

    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'."; 

Спасибо за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 05 марта 2011

Вы не можете поместить несколько операторов в один вызов mysql_query.Вы должны выполнять их по одному, по крайней мере по умолчанию.См. mysql_query документы.

0 голосов
/ 05 марта 2011

Могу поспорить, что он не обрабатывает комментарии /* ... */.Попробуйте использовать -- комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...