%PDF- %PDF-
| Direktori : /www/varak.net/mail2.varak.net_old/libraries/OAuthClient/ |
| Current File : //www/varak.net/mail2.varak.net_old/libraries/OAuthClient/mysqli_oauth_client.php |
<?php
/*
* mysqli_oauth_client.php
*
* @(#) $Id: mysqli_oauth_client.php,v 1.4 2013/07/02 05:19:31 mlemos Exp $
*
*/
class mysqli_oauth_client_class extends database_oauth_client_class
{
var $db;
var $database = array(
'host'=>'',
'user'=>'',
'password'=>'',
'name'=>'',
'port'=>0,
'socket'=>''
);
Function Initialize()
{
if(!parent::Initialize())
return false;
$this->db = new mysqli($this->database['host'], $this->database['user'], $this->database['password'], $this->database['name'], $this->database['port'], $this->database['socket']);
if($this->db->connect_errno)
{
$this->SetError($this->db->connect_error);
$this->db = null;
return false;
}
return true;
}
Function Finalize($success)
{
if(IsSet($this->db))
{
$this->db->close();
$this->db = null;
}
return parent::Finalize($success);
}
Function Query($sql, $parameters, &$results, $result_types = null)
{
if($this->debug)
$this->OutputDebug('Query: '.$sql);
$results = array();
$statement = $this->db->stmt_init();
if(!$statement->prepare($sql))
return $this->SetError($statement->error);
$prepared = array();
$types = '';
$tp = count($parameters);
$v = $parameters;
for($p = 0; $p < $tp;)
{
switch($t = $v[$p++])
{
case 's':
case 'i':
case 'd':
break;
case 'b':
$v[$p] = (IsSet($v[$p]) ? ($v[$p] ? 'Y' : 'N') : null);
case 't':
case 'dt':
case 'ts':
$t = 's';
break;
}
$types .= $t;
if($this->debug)
$this->OutputDebug('Query parameter type: '.$t.' value: '.$v[$p]);
$prepared[] = &$v[$p++];
}
array_unshift($prepared, $types);
if(!call_user_func_array(array($statement, 'bind_param'), $prepared)
|| !$statement->execute())
{
$statement->close();
return $this->SetError($statement->error);
}
$fields = $statement->field_count;
if($fields)
{
$row = $bind = array();
for($f = 0; $f < $fields; ++$f)
{
$row[$f] = null;
$bind[$f] = &$row[$f];
}
if(!call_user_func_array(array($statement, 'bind_result'), $bind))
{
$statement->close();
return $this->SetError($statement->error);
}
$rows = array();
while(($success = $statement->fetch()) !== null)
{
if(!$success)
{
$statement->close();
return $this->SetError($statement->error);
}
if(IsSet($result_types))
{
$tc = count($result_types);
for($c = 0; $c < $tc; ++$c)
{
if(!IsSet($row[$c]))
continue;
switch($result_types[$c])
{
case 'b':
$row[$c] = ($row[$c] === 'Y');
break;
}
}
}
$rows[] = $row;
}
$results['rows'] = $rows;
}
elseif(strlen($error = $statement->error))
{
$statement->close();
return $this->SetError($error);
}
else
{
$results['insert_id'] = $statement->insert_id;
$results['affected_rows'] = $statement->affected_rows;
}
$statement->close();
return true;
}
};
?>