diff options
author | Andrey Andreev <narf@bofh.bg> | 2012-07-06 10:57:37 +0200 |
---|---|---|
committer | Andrey Andreev <narf@bofh.bg> | 2012-07-06 10:57:37 +0200 |
commit | 9a4f356846daa078c077cbadb227524c857b8f97 (patch) | |
tree | bb6b3ee33c3056438149a252a593cae9eed92390 /system/database/drivers/mssql | |
parent | 9e3a83a65668cc26b685f0b35a4428809435f7c9 (diff) |
_fetch_object(), custom_result_object() to utilize PHP's native capability to directly return custom class results
Diffstat (limited to 'system/database/drivers/mssql')
-rw-r--r-- | system/database/drivers/mssql/mssql_result.php | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php index 62996aac1..aeede3f4b 100644 --- a/system/database/drivers/mssql/mssql_result.php +++ b/system/database/drivers/mssql/mssql_result.php @@ -26,7 +26,7 @@ */ /** - * MS SQL Result Class + * MSSQL Result Class * * This class extends the parent result class: CI_DB_result * @@ -161,11 +161,25 @@ class CI_DB_mssql_result extends CI_DB_result { * * Returns the result set as an object * + * @param string * @return object */ - protected function _fetch_object() + protected function _fetch_object($class_name = 'stdClass') { - return mssql_fetch_object($this->result_id); + $row = @mssql_fetch_object($this->result_id); + + if ($class_name === 'stdClass' OR ! $row) + { + return $row; + } + + $class_name = new $class_name(); + foreach ($row as $key => $value) + { + $class_name->$key = $value; + } + + return $class_name; } } |