Codeigniter2.2.0 postgre_driver.php のバグ
system/database/drivers/postgre/postgre_driver.php
にバグがあったので修正。
修正前
function _version()
{
return "SELECT version() AS ver";
}
function insert_id()
{
$v = $this->_version();
$v = $v['server'];
$table = func_num_args() > 0 ? func_get_arg(0) : NULL;
$column = func_num_args() > 1 ? func_get_arg(1) : NULL;
if ($table == NULL && $v >= '8.1')
{
$sql='SELECT LASTVAL() as ins_id';
}
_version()でSQLクエリを返しているが、
それではinsert_id()で意図した動作にならない。
修正後
function _version()
{
return pg_version();
}
function insert_id()
{
$v = $this->_version();
$v = $v['server'];
$table = func_num_args() > 0 ? func_get_arg(0) : NULL;
$column = func_num_args() > 1 ? func_get_arg(1) : NULL;
if ($table == NULL && $v >= '8.1')
{
$sql='SELECT LASTVAL() as ins_id';
}
_version()でpg_version()の結果を返すように変更
