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

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。