Особенности работы с Mysql во FreeBSD на с++
- После каждого выполнения запроса необходимо «сохранять» результат запроса при помощи mysql_store_result, иначе получаем ошибку
1Error: can't execute SQL-query Commands out of sync; you can't run this command now - Во FreeBSD не достаточно «выбрать базу» при выполнении mysql_real_connect(connectionNOC,hostbase,userbase,passbase,namebase,3306,0,0). Пришлось дополнительно её «перевыбирать» в запросом.
Итоговый шаблон работы с MySQL на FreeBSD:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
string sql; connectionNOC = mysql_init(NULL); mysql_real_connect(connectionNOC,hostbase,userbase,passbase,namebase,3306,0,0) sql ="use noc"; if (mysql_query(connectionNOC, sql.c_str()) != 0){fprintf(stderr,"Error: can't execute SQL-query\n");exit(1);}; result=mysql_store_result(connectionNOC); // Шаг 1 sql ="SET NAMES utf8"; if (mysql_query(connectionNOC, sql.c_str()) != 0){fprintf(stderr,"Error: can't execute SQL-query\n");exit(1);}; result=mysql_store_result(connectionNOC); // Шаг 2 sql="select * from lanbshconfig"; if (mysql_query(connectionNOC, sql.c_str()) != 0){ fprintf(stderr,"Error: can't execute SQL-query %s\n",mysql_error(connectionNOC)); exit(1); }; |