<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.mysqlnd.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'mysqlnd.persist.php',
    1 => '持続的接続',
    2 => '持続的接続',
  ),
  'up' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'prev' => 
  array (
    0 => 'mysqlnd.incompatibilities.php',
    1 => '非互換性',
  ),
  'next' => 
  array (
    0 => 'mysqlnd.stats.php',
    1 => '統計情報',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/mysqlnd/persist.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlnd.persist" class="chapter">
 <h1 class="title">持続的接続</h1>

 <p class="simpara">
  <strong>持続的接続の使用</strong>
 </p>
 <p class="simpara">
  <code class="literal">mysqli</code> と <code class="literal">mysqlnd</code> の組み合わせで使っている場合は、
  持続的接続を作るときにサーバー上で
  <code class="literal">COM_CHANGE_USER</code> (<code class="literal">mysql_change_user()</code>)
  を呼び出します。これで、接続の認証が再び行われることになります。
 </p>
 <p class="simpara">
  <code class="literal">COM_CHANGE_USER</code> の呼び出しと関連するオーバーヘッドが若干あるので、
  コンパイル時にこれをオフにすることができます。
  持続的接続を再利用すると、接続が再利用できるかどうか簡単にテストするために、
  <code class="literal">COM_PING</code> (<code class="literal">mysql_ping</code>)
  の呼び出しが生成されます。
 </p>
 <p class="simpara">
  <code class="literal">COM_CHANGE_USER</code> を呼び出さないようにするには、コンパイルのときに
  <code class="literal">MYSQLI_NO_CHANGE_USER_ON_PCONNECT</code> フラグを使います。たとえば次のようになります。
  例えば、
 </p>
<div class="example-contents">
<div class="cdata"><pre>
shell# CFLAGS=&quot;-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT&quot; ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug &amp;&amp; make clean &amp;&amp; make -j6
</pre></div>
</div>

 <p class="simpara">
  またはその代わりに、以下のようにします。
 </p>
<div class="example-contents">
<div class="cdata"><pre>
shell# export CFLAGS=&quot;-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT&quot;
shell# configure --whatever-option
shell# make clean
shell# make
</pre></div>
</div>

 <p class="simpara">
  <code class="literal">mysqlnd</code> 上の <code class="literal">mysqli</code> だけが
  <code class="literal">COM_CHANGE_USER</code> を使用することに注意してください。
  他の拡張モジュールとドライバーの組み合わせでは、持続的な接続を最初に使用する際に、
  <code class="literal">COM_PING</code> を使用します。
 </p>
</div>
<?php manual_footer($setup); ?>