<?php
/**
* @package DATA_MySQL5
*/
/**
* This class provides basic interaction with a MySQL5 database.
*
* Access functions called from the Database object are proxied
* to this object.
* @see DATA_MySQL5_Database::__call()
*/
class DATA_MySQL5_Access {
/**
* Connects to a MySQL5 database.
* @link http://php.net/mysql_connect
* @param string $server Optional. Server address.
* @param string $username Optional. User name.
* @param string $password Optional. Password.
* @param bool $newLink Optional. Force a second link to be opened in the case
* there is already a connection with the same parameters.
* @param int $clientFlags Optional.
* @return resource The opened connection.
*/
static public function connect() {
$args = func_get_args();
return call_user_func_array('mysql_connect', $args);
}
/**
* Changes the current schema in the currently connected MySQL5 database
* @param string $schema The schema name.
* @param resource $link Optional. A different link to an opened MySQL5 connection.
* @return bool True on success, false on failure.
*/
static public function selectSchema($schema) {
$args = func_get_args();
return call_user_func_array('mysql_select_db', $args);
}
/**
* Executes a query.
* Throws a {@link DATA_MySQL5_Error DATA_MySQL5_Error exception} on failure.
* @param string $sql The query in sql.
* @return resource An object/resource representing the query results.
*/
static public function query($sql) {
$query = mysql_query($sql);
if (!$query) throw new DATA_MySQL5_Error();
return $query;
}
/**
* Returns the last auto numeric id inserted.
* @return int The id.
*/
static public function getInsertID() {
return mysql_insert_id();
}
/**
* Free the memory occupied by a query result.
* @param resource $query An object/resource representing the query results.
* @return bool True on success, false on failure.
*/
static public function freeResult($query) {
return mysql_free_result($query);
}
/**
* Returns a numerically indexed array with the next results in the
* provided query object/resource.
*
* @param resource $query The query results object/resource.
* @return array The next row in the results.
*/
static public function fetchRow($query) {
return mysql_fetch_row($query);
}
/**
* Returns an associative array with the next results in the
* provided query object/resource.
* @param resource $query The query results object/resource.
* @return array The next row in the results.
*/
static public function fetchAssoc($query) {
return mysql_fetch_assoc($query);
}
/**
* Get field data from query result.
* @param resource $query The query results object/resource.
* @param int $row The row number.
* @param int|string $field Optional. The field. First field if omitted.
* @return string The field data.
*/
static public function result($query, $row) {
$args = func_get_args();
return call_user_func_array('mysql_result', $args);
}
/**
* Moves the result pointer.
* @param resource $query An object/resource representing the query results.
* @param int $row The row number.
* @return bool True on success, false on failure.
*/
static public function dataSeek($query, $row) {
return mysql_data_seek($query, $row);
}
/**
* Returns the error message of the last error occurred.
* @param resource $link Optional. Link to an open database connection.
* @return string The error message.
*/
static public function error() {
$args = func_get_args();
return call_user_func_array('mysql_error', $args);
}
/**
* Returns the error number of the last error occurred.
* @param resource $link Optional. Link to an open database connection.
* @return int The error number.
*/
static public function errorNo() {
$args = func_get_args();
return call_user_func_array('mysql_errno', $args);
}
/**
* Escapes a string to be used between single quotes in a sql query.
* @param string $string The string needing escaping.
* @return string The escaped string.
*/
static public function escape($string) {
return mysql_real_escape_string($string);
}
/**
* Prepares data to be used in a sql query.
* @param mixed $data The data.
* @return string The string representing the data in a sql query.
*/
static public function prepareData($data) {
if ($data === null || ($data instanceof DATA_SQLType && $data->isNull())) {
return 'NULL';
} else {
return "'" . self::escape((string)$data) . "'";
}
}
}
?>
|