updated msqli driver

git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@3276 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
gwoo 2006-07-21 22:01:26 +00:00
parent 37e7d798d1
commit 6b62ff231a

View file

@ -104,6 +104,7 @@ class DboMysqli extends DboSource {
if (mysqli_select_db($this->connection, $config['database'])) { if (mysqli_select_db($this->connection, $config['database'])) {
$this->connected = true; $this->connected = true;
} }
return $this->connected; return $this->connected;
} }
/** /**
@ -136,7 +137,6 @@ class DboMysqli extends DboSource {
return $cache; return $cache;
} }
$result = $this->_execute('SHOW TABLES FROM ' . $this->config['database'] . ';'); $result = $this->_execute('SHOW TABLES FROM ' . $this->config['database'] . ';');
if (!$result) { if (!$result) {
return array(); return array();
} else { } else {
@ -164,7 +164,7 @@ class DboMysqli extends DboSource {
} }
$fields = false; $fields = false;
$cols = $this->_execute('DESCRIBE ' . $this->fullTableName($model)); $cols = $this->query('DESCRIBE ' . $this->fullTableName($model));
foreach ($cols as $column) { foreach ($cols as $column) {
$colKey = array_keys($column); $colKey = array_keys($column);
@ -172,7 +172,12 @@ class DboMysqli extends DboSource {
$column[0] = $column[$colKey[0]]; $column[0] = $column[$colKey[0]];
} }
if (isset($column[0])) { if (isset($column[0])) {
$fields[] = array('name' => $column[0]['Field'], 'type' => $this->column($column[0]['Type']), 'null' => $column[0]['Null']); $fields[] = array(
'name' => $column[0]['Field'],
'type' => $this->column($column[0]['Type']),
'null' => $column[0]['Null'],
'default' => $column[0]['Default']
);
} }
} }
@ -307,7 +312,7 @@ class DboMysqli extends DboSource {
* @return int Number of rows in resultset * @return int Number of rows in resultset
*/ */
function lastNumRows() { function lastNumRows() {
if ($this->_result and is_resource($this->_result)) { if ($this->_result and is_object($this->_result)) {
return @mysqli_num_rows($this->_result); return @mysqli_num_rows($this->_result);
} }
return null; return null;
@ -389,10 +394,8 @@ class DboMysqli extends DboSource {
$num_fields = mysqli_num_fields($results); $num_fields = mysqli_num_fields($results);
$index = 0; $index = 0;
$j = 0; $j = 0;
while ($j < $num_fields) { while ($j < $num_fields) {
$column = mysqli_fetch_field_direct($results, $j);
$column = mysqli_fetch_field($results,$j);
if (!empty($column->table)) { if (!empty($column->table)) {
$this->map[$index++] = array($column->table, $column->name); $this->map[$index++] = array($column->table, $column->name);
} else { } else {
@ -411,7 +414,7 @@ class DboMysqli extends DboSource {
$resultRow = array(); $resultRow = array();
$i = 0; $i = 0;
foreach ($row as $index => $field) { foreach ($row as $index => $field) {
list($table, $column) = $this->map[$index]; @list($table, $column) = $this->map[$index];
$resultRow[$table][$column] = $row[$index]; $resultRow[$table][$column] = $row[$index];
$i++; $i++;
} }
@ -420,6 +423,21 @@ class DboMysqli extends DboSource {
return false; return false;
} }
} }
/**
* Returns a row from given resultset as an array .
*
* @param bool $assoc Associative array only, or both?
* @return array The fetched row as an array
*/
function fetchRow($assoc = false) {
if (is_object($this->_result)) {
$this->resultSet($this->_result);
$resultRow = $this->fetchResult();
return $resultRow;
} else {
return null;
}
}
/** /**
* Enter description here... * Enter description here...
* *