I have this strange problem with PHP Sqlsrv calling a store procedure. Sometimes it return result, sometimes not. When debugging with netbean php, it popup Socket exception occurred. When the browser made the request, the connection get reset and does not return any error.
I am using the sqlsrv library of codeigniter
function result_object()
{
if (count($this->result_object) > 0)
{
return $this->result_object;
}
// In the event that query caching is on the result_id variable
// will return FALSE since there isn't a valid SQL resource so
// we'll simply return an empty array.
if ($this->result_id === FALSE OR $this->num_rows() == 0)
{
return array();
}
$this->_data_seek(0);
while ($row = $this->_fetch_object())
{
$this->result_object[] = $row;
}
return $this->result_object;
}
function result($type = 'object')
{
if ($type == 'array') return $this->result_array();
else if ($type == 'object') return $this->result_object();
else return $this->custom_result_object($type);
}
$result = null;
do{
$result = $this->result(); //error happen on this line.
log_message("error", print_r($result,true)); // if added this line, the result is okay most of the time
}while( sqlsrv_next_result($this->result_id));
EDIT : Okay, this is getting more strange, if I add this line after $result then it works MOST of the TIME . log_message("error", print_r($result,true));
EDIT 2 : Okay, just anything to do with logging message into the file. Such as like this will work also. Seem to do with output buffering ? log_message("error", print_r("abc123",true));
EDIT 3 :
'hostname' => '192.168.8.165',
'username' => 'xxx',
'password' => 'xxx',
'database' => 'dbname',
'dbdriver' => 'sqlsrv',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_unicode_ci',
'swap_pre' => '',
'autoinit' => TRUE,
'stricton' => FALSE