Categories: IT

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);
}
// --------------------------------------------------------------------

これで解決。

管理者

Recent Posts

Androidにて「Cookieが無効です 」が出る

AndroidスマホのChro…

2か月 ago

GASで半角カナから全角カナへ変換

Googleスプレッドシートに…

4か月 ago

This website uses cookies.