Welcome Guest, Not a member yet? Register   Sign In
Num Rows ODBC Codeigniter 3.0.3 No t Working ?
#1

Hi All,
I have a problem with Codeigniter connectiong to SQL Server 2012. Below my database Configuration

$db['DbSms'] = array(
'dsn' => '',
'hostname' => 'Driver={SQL Server};Server=My Local IP',
'username' => 'sa',
'password' => 'my password',
'database' => 'DB_SMS',
'dbdriver' => 'odbc',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);


Below my script in controller

$correct_ip_address = $_SERVER['REMOTE_ADDR']; 

$query = $this->dbuser->query("
select * from [USERMASTER].[dbo].[tbl_trx_session]
where USER_ID ='$USER_ID' AND SESSION_LOGINFLAG='1' AND SESSION_WKIP='$correct_ip_address'
");
foreach ($query->result() as $row){
 echo $row->USER_ID;
 echo $row->USER_ID;
 echo $row->USER_ID;
}
print_r($query);die;

Result print_r

CI_DB_odbc_result Object ( [conn_id] => Resource id #53 [result_id] => Resource id #54 [result_array] => Array ( ) [result_object] => Array ( [0] => stdClass Object ( [IDX] => 421567 [USER_ID] => opsup4 [APP_ID] => Aplikasi RSS [SESSION_WKID] => [SESSION_WKIP] => 10.20.34.73 [SESSION_STARTLOGIN] => 2016-01-12 09:43:41.000 [SESSION_ENDLOGIN] => [SESSION_LOGINFLAG] => 1 [SESSION_TRXDATE] => [SESSION_CLOSEBY] => ) ) [custom_result_object] => Array ( ) [current_row] => 0 [num_rows] => [row_data] => )

Any body know why 
[row_data]  is null although there is not null with my query result

Thank's
Reply
#2

(This post was last modified: 01-12-2016, 04:39 AM by InsiteFX.)

NOTE: ( CodeIgniter Users Guide )

Not all database drivers have a native way of getting the total number of rows for a result set. When this is the case, all of the data is prefetched and count() is manually called on the resulting array in order to achieve the same result.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#3

print_r($query) is not a particularly useful method of troubleshooting a problem with your code's interaction with the database library. A given driver may not populate num_rows or row_data when you call foreach($query->result() as $row).

In fact, as is evidenced in the output you posted, it's more likely that the data is stored in result_object, since calling result() with no arguments calls the result_object() method, which populates that property with the results from the driver's _fetch_object() method.

The num_rows property is usually populated only after you've called the num_rows() method. If the property has previously been populated, the num_rows() method will return the value of the property, rather than attempting to either get the number from the driver or count the result_* properties.

You should not be using either the num_rows property or the row_data property in your own code, as they are only intended for the database library's internal use.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB