codeigniterとSQLServerでpconnectを使う場合

たぶん、これcodeigniterのバグ。

DBにコネクトしてコネクションIDを取得してるとこ。

system/database/DB_driver.phpの115行目辺り。

// ----------------------------------------------------------------

// Connect to the database and set the connection ID
$this->conn_id = ($this->pconnect == FALSE) ? $this->db_connect() : $this->db_pconnect();

// No connection resource?  Throw an error

pconnect を使う場合は、$this->db_pconnect() の戻り値をセットするんだけども、

SQLServer用のドライバーを見ると、

system

∟database

 ∟drivers

  ∟sqlsrv

   ∟sqlsvr_driver.php の89行目。

// --------------------------------------------------------------------

/**
 * Persistent database connection
 *
 * @access	private called by the base class
 * @return	resource
 */
function db_pconnect()
{
  $this->db_connect(TRUE);
}
// --------------------------------------------------------------------

おいおい、return が無いじゃないか。

// --------------------------------------------------------------------

/**
 * Persistent database connection
 *
 * @access	private called by the base class
 * @return	resource
 */
function db_pconnect()
{
  return $this->db_connect(TRUE);
}
// --------------------------------------------------------------------

これで解決。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です