LINUX.ORG.RU

mysql_options и reconnect


0

1

При создании соединения с MySQL сервером я выставляю опцию MYSQL_INIT_COMMAND с помощью функции mysql_options(). В документации http://dev.mysql.com/doc/refman/5.0/en/mysql-options.html сказано что команда будет выполнена автоматически при каждом реконнекте. Но на практике этого не происходит, команды выполняется лишь при первом коннекте к mysqld. Команда выставляет кодировку в UTF8.

Вот программа - http://pastebin.com/tu9jTyam Стоит после запуска программы перезапустить mysqld сервер и программа начинает выдавать ????? вместо корректных UTF8 символов.

Помогите советом, как побороть?

по ссылке написано

Note: mysql_real_connect() incorrectly reset the MYSQL_OPT_RECONNECT option to its default value before MySQL 5.0.19. Therefore, prior to that version, if you want reconnect to be enabled for each connection, you must call mysql_options() with the MYSQL_OPT_RECONNECT option after each call to mysql_real_connect(). This is not necessary as of 5.0.19: Call mysql_options() only before mysql_real_connect() as usual.

версию сервера какую используешь?

s0L
()

вот еще интересный коммент с той же страницы

Set flag CLIENT_REMEMBER_OPTIONS in client_flag when you calling mysql_real_connect(). Without this flag, if mysql_real_connect() fails, you must repeat the mysql_options() calls before trying to connect again.

очень похоже на то, что тебе поможет

s0L
()
Ответ на: комментарий от s0L

Видел насчет версий, не мой случай ii mysql-server 5.1.57-3

CLIENT_REMEMBER_OPTIONS тоже видел db = mysql_real_connect(db, «127.0.0.1», «test», «test», «test», 0, NULL, CLIENT_REMEMBER_OPTIONS | CLIENT_FOUND_ROWS); Вот такое изменение не дает нужного эффекта, да и опция эта для случая если mysql_real_connect не прошел с первого раза.

mysqluser2
() автор топика
Ответ на: комментарий от mysqluser2

может стоит вапще отказаться от MYSQL_OPT_RECONNECT и сделать переподключение руками?

s0L
()
Ответ на: комментарий от s0L

точно, MYSQL_SET_CHARSET_NAME решил мою проблему, tnx
а переподключение руками несколько не удобно

mysqluser2
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.