Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


23.8.7.36 mysql_init()

MYSQL *mysql_init(MYSQL *mysql)

説明

mysql_real_connect() に適切な MYSQL オブジェクトを割り当てるか初期化します。mysqlNULL ポインタである場合、関数は新しいオブジェクトを割り当てて、初期化して返します。そうでない場合、オブジェクトは初期化され、オブジェクトのアドレスが返されます。mysql_init() が新しいオブジェクトを割り当てた場合、それは、mysql_close() が呼び出され、接続がクローズされると解放されます。

非マルチスレッド環境では、mysql_init() は、必要に応じて自動的に mysql_library_init() を呼び出します。ただし、mysql_library_init() はマルチスレッド環境でスレッドセーフでないため、mysql_init() もスレッドセーフでありません。mysql_init() を呼び出す前に、スレッドの生成前に mysql_library_init() を呼び出すか、または相互排他ロックを使用して、mysql_library_init() 呼び出しを保護します。これは、ほかのすべてのクライアントライブラリ呼び出しの前に実行すべきです。

戻り値

初期化された MYSQL* ハンドル。新しいオブジェクトを割り当てるために十分なメモリーがなかった場合は NULL

エラー

メモリーが不十分な場合、NULL が返されます。


User Comments
  Posted by Miloslav Ponkrac on February 22, 2004
Is neccessary to call mysql_init before every calling of mysql_real_connect()? Is next code good?

MYSQL m;
mysql_init(&m);
mysql_real_connect(&m,...);
...
mysql_close(&m);
/* New connection without mysql_init(). */
mysql_real_connect(&m,...);
...

  Posted by Arlen Cuss on April 12, 2004
It is necessary to re-mysql_init() a MYSQL struct once you've mysql_close()'d it, as the mysql_close (20.2.3.4) documentation explains:

"... mysql_close() also deallocates the connection handle pointed to by mysql if the handle was allocated automatically by mysql_init() or mysql_connect(). "
  Posted by Robert Basler on June 9, 2004
This API has one danger. If the structure alignment of your compiler doesn't match the alignment of the compiler that built the library you are linking against, it can overwrite other variables on the stack. So it would be better to let it allocate the structure rather than using the ability to allocate it yourself.

I ran across this when I set my compiler to pack structures and the library was linked with structures aligned to dwords.
  Posted by Leonid Boitsov on September 3, 2004
I have also found that it is dangerous to copy MYSQL structure. With mysql 3.x it was ok, but quite bad with 4.x. Everything works ok, but API hangs up on function mysql_close.

Sign Up Login You must be logged in to post a comment.