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()の結果を返すように変更