Приветствую.Вопрос в связи с использованием библиотеки mysql. Во всех примерах, испольщующих MySQL API, при вызове mysql_init() передается только адрес структуры MYSQL, с чем это связано?
Например, если я хочу заполнить структуру перед вызовом mysql_init(), то мне нужно объявить, например, так:
MYSQL *conn;
conn->host="1.2.3.4";
conn->user = "root";
conn->passwd = "";
conn->db = "db";mysql_init(Conn);
....Правильный ли это подход?
>Приветствую.
>
>Вопрос в связи с использованием библиотеки mysql. Во всех примерах, испольщующих MySQL
>API, при вызове mysql_init() передается только адрес структуры MYSQL, с чем
>это связано?
>
>Например, если я хочу заполнить структуру перед вызовом mysql_init(), то мне нужно
>объявить, например, так:
>
>MYSQL *conn;
>conn->host="1.2.3.4";
>conn->user = "root";
>conn->passwd = "";
>conn->db = "db";
>
>mysql_init(Conn);
>....
>
>Правильный ли это подход?
Нет, не правильный. Перед заплнением структуры (любой) ее нужно инициализировать, что и делает ф-ия mysql_init(MYSQL *mysql).
А потом соединяться с БД. Пример кода:MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if
(!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(&mysql));
}P.S. кстати все это есть на http://dev.mysql.com
> Нет, не правильный. Перед заплнением структуры (любой) ее нужно инициализировать, что
>и делает ф-ия mysql_init(MYSQL *mysql).
> А потом соединяться с БД. Пример кода:
>
>MYSQL mysql;
>
>mysql_init(&mysql);
>mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
>if
>(!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
>{
> fprintf(stderr, "Failed to connect to database: Error: %s\n",
> mysql_error(&mysql));
>}
>
>P.S. кстати все это есть на http://dev.mysql.com
Дело в том, что я бы хотел передавать параметры соединения прямо в структуре MYSQL (хост, имя базы, пользователь, пароль). Как более красиво это сделать, что не ломать общую концепцию?
up