Version: 1.0 - Release
Type: Class
Category: Databases
License: Artistic License
Description: Classe de manipulao de banco de dados MySQL via PHP
<?PHP
/*
=====================================================================
dbMySQL Class
=====================================================================
Nome:
dbMySQL Class - Classe de Conexo e Manipulao de dados
Autor:
Rodrigo do N Maciel <rk_maciel@yahoo.com.br>
Descricao:
Classe documentada de manipulacao de dados com MySQL
Referencia de todas as funcoes PHP4/MySQL
Uso:
Salve todo esse cdigo (juntamente com este cabealho)
em um arquivo chamado * class.dbMySQl.php * e o inclua
em seu diretrio de include_path ou na raiz de seu site.
*** No final do arquivo encontra-se um exemplo de como
efetuar uma Conexo/Consulta com esta classe.
Report Bug:
Por favor, reporte qualquer bugs encontrado para meu endereo de
e-Mail : rk_maciel@yahoo.com.br.
Se voce criar um Fix/Patch para este bug, envie para o e-Mail
citado acima, para que eu possa incorporar neste script e com os
devidos crditos.
Historico da Versao:
1.0 03/08/2004 - Release Inicial
=====================================================================
Copyright (C) 2004 Rodrigo do N Maciel
=====================================================================
*/
/**
* @desc Classe dbMySQL
* Metodos de acesso ao MySQL
*
* @author Rodrigo do N maciel <rk_maciel@yahoo.com.br>
* @copyright Copyright (C) 2004 Rodrigo do N Maciel
*
* @package kernel
* @subpackage core
*/
class dbMySQL{
var $result;
/**
* @desc Abre um link no host como o usurio especificado com a senha.
*
* @param string $hostname Hostname do MySQL
* @param string $username Usurio do MySQL
* @param string $password Senha do Usurio do MySQL
*
* @return resource
*/
function Connect($hostname, $username, $password){
$this->hostname = $hostname;
$this->username = $username;
$this->password = $password;
return @mysql_connect($this->hostname, $this->username, $this->password) or die(mysql_errno());
}
/**
* @desc Abre uma conexo persistente com o banco de dados. Todos os argumentos so opcionais.
* Tenha cuidado - mysql_close e o trmino do script no fecharo a conexo.
*
* @param string $hostname Hostname do MySQL
* @param string $username Usurio do MySQL
* @param string $password Senha do Usurio do MySQL
*
* @return resource
*/
function pConnect($hostname, $username, $password){
$this->hostname = $hostname;
$this->username = $username;
$this->password = $password;
return @mysql_pconnect($this->hostname, $this->username, $this->password) or die(mysql_errno());
}
/**
* @desc Cria um novo Banco de Dados MySQL no host associado com o link aberto mais prximo.
*
* @param string $database Banco de Dados
*
* @return bool
*/
function dbCreate($database){
$this->database = $database;
return @mysql_create_db($this->database, $this->link_id);
}
/**
* @desc Seleciona um novo Banco de Dados MySQL no host associado.
*
* @param string $database Banco de Dados
*
* @return bool
*/
function dbSelect($database){
$this->database = $database;
return @mysql_select_db($this->database);
}
/**
* @desc Exclui ("dropa") o banco de dados MySQL especificado.
*
* @param string $database Banco de Dados
* @param resource $conexao Resource #ID da Conexao
*
* @return bool
*/
function dbDrop($database, $conexao){
$this->database = $database;
$this->conexao = $conexao;
return @mysql_drop_db($this->database, $this->conexao);
}
/**
* @desc Alterna o usurio do MySQL para um link aberto.
*
* @param string $username Usurio do MySQL
* @param string $password Senha do Usuario do MySQL
* @param resource $conexao Resource #ID da Conexao
*
* @return bool
*/
function ChangeUser($username, $password, $conexao){
$this->username = $username;
$this->password = $password;
$this->conexao = $conexao;
return @mysql_change_user($this->username, $this->password, $this->conexao);
}
/**
* @desc Fecha o link identificado (normalmente desnecessrio).
*
* @param resource $conexao Resource #ID da Conexao
*
* @return bool
*/
function dbClose($conexao){
$this->conexao = $conexao;
return @mysql_close($this->conexao);
}
/**
* @desc Envia uma consulta ao banco de dados.
*
* @param string $sql_query String SQL Query
*
* @return resource
*/
function Query($sql_query){
$this->sql_query = $sql_query;
$this->resultado = @mysql_query($this->sql_query) or die (mysql_errno());
return $this->resultado;
}
/**
* @desc Envia uma consulta ao banco de dados especifico.
*
* @param string $database Banco de Dados
* @param string $sql_query String SQL Query
*
* @return bool
*/
function dbQuery($database, $sql_query){
$this->database = $database;
$this->sql_query = $sql_query;
$this->resultado = @mysql_db_query($this->database, $this->sql_query) or die (mysql_errno());
return $this->resultado;
}
/**
* @desc Utilize depois de uma consulta INSERT, UPDATE ou DELETE no para verificar o nmero de linhas alteradas.
*
* @param resource $conexao Resource #ID da Conexao
*
* @return int
*/
function AffectedRows($conexao){
$this->conexao = $conexao;
return @mysql_affected_rows($this->conexao);
}
/**
* @desc Move o ponteiro interno de linha para nmero especificado de linha.
* Utiliza uma funo de busca para retornar os dados dessa linha.
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $numero_da_linha Numero da Linha a ser encontrada
*
* @return bool
*/
function DataSeek($resultado, $numero_da_linha){
$this->resultado = $resultado;
$this->linha = $numero_da_linha;
return @mysql_data_seek($this->resultado, $this->linha);
}
/**
* @desc Busca conjunto de resultados como array associativo.
* O tipo de resultado pode ser MYSQL_ASSOC, MYSQL_NUM ou MYSQL_BOTH (padro).
*
* @param resource $resultado Resultado de uma SQL Query
*
* @return array
*/
function FetchArray($resultado){
$this->resultado = $resultado;
return @mysql_fetch_array($this->resultado);
}
/**
* @desc Retorna informaes sobre um campo como um objeto.
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $deslocamento_do_campo Deslocamento do Campo
*
* @return object
*/
function FetchField($resultado, $deslocamento_do_campo){
$this->resultado = $resultado;
$this->deslocamento_do_campo = $deslocamento_do_campo;
return @mysql_fetch_field($this->resultado, $this->deslocamento_do_campo);
}
/**
* @desc Retorna o comprimento de cada campo em um conjunto de resultados
*
* @param resource $resultado Resultado de uma SQL Query
*
* @return array
*/
function FetchLengths($resultado){
$this->resultado = $resultado;
return @mysql_fetch_lengths($this->resultado);
}
/**
* @desc Busca o conjunto de resultados como um objeto.
* O tipo de resultado pode ser MYSQL_ASSOC, MYSQL_NUM ou MYSQL_BOTH (padro).
*
* @param resource $resultado Resultado de uma SQL Query
*
* @return array
*/
function FetchObject($resultado){
$this->resultado = $resultado;
return @mysql_fetch_object($this->resultado);
}
/**
* @desc Busca o conjunto de rasultados como um array.
*
* @param resource $resultado Resultado de uma SQL Query
*
* @return array
*/
function FetchRow($resultado){
$this->resultado = $resultado;
return @mysql_fetch_row($this->resultado);
}
/**
* @desc Retorna flags associadas com campo enumerado. Ex.: NOT NULL, AUTO_INCREMENT, BINARY).
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $deslocamento_do_campo Deslocamento do Campo
*
* @result string
*/
function FieldFlags($resultado, $deslocamento_do_campo){
$this->resultado = $resultado;
$this->deslocamento = $deslocamento_do_campo;
return @mysql_field_flags($this->resultado, $this->deslocamento);
}
/**
* @desc Retorna o comprimento do campo enumerado.
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $deslocamento_do_campo Deslocamento do Campo
*
* @return int
*/
function FieldLen($resultado, $deslocamento_do_campo){
$this->resultado = $resultado;
$this->deslocamento = $deslocamento_do_campo;
return @mysql_field_len($this->resultado, $this->deslocamento);
}
/**
* @desc Retorna o nome do campo enumeraxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $indice_do_campo Indice do Campo
*
* @return string
*/
function FieldName($resultado, $indice_do_campo){
$this->resultado = $resultado;
$this->indice = $indice_do_campo;
return @mysql_field_name($this->resultado, $this->indice);
}
/**
* @desc Retorna o nome do campo enumerado. Utilizado com mysql_fetch_field.
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $deslocamento_do_campo Deslocamento do Campo
*
* @return bool
*/
function FieldSeek($resultado, $deslocamento_do_campo){
$this->resultado = $resultado;
$this->deslocamento = $deslocamento_do_campo;
return @mysql_field_name($this->resultado, $this->deslocamento_do_campo);
}
/**
* @desc Retorna o nome da tabela do campo especificado.
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $deslocamento_do_campo Deslocamento do Campo
*
* @return string
*/
function FieldTable($resultado, $deslocamento_do_campo){
$this->resultado = $resultado;
$this->deslocamento = $deslocamento_do_campo;
return @mysql_field_seek($this->resultado, $this->deslocamento);
}
/**
* @desc Retorna o tipo de deslocamento de campo. Ex.: TINYINT, BLOB, VARCHAR).
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $deslocamento_do_campo Deslocamento do Campo
*
* @return string
*/
function FieldType($resultado, $deslocamento_do_campo){
$this->resultado = $resultado;
$this->deslocamento = $deslocamento_do_campo;
return @mysql_field_type($this->resultado, $this->deslocamento);
}
/**
* @desc Retorna ponteiro de resultados do banco de dados no mysql. Utilizado com mysql_table_name.
*
* @param resource $resultado Resultado de uma SQL Query
*
* @return resource
*/
function ListDbs($resultado){
$this->resultado = $resultado;
return @mysql_list_dbs($this->resultado);
}
/**
* @desc Retorna o ID do resultado para utilizao nas funes mysql_field, sem realizar uma consulta real.
*
* @param string $database Banco de Dados
* @param string $tabela Tabela de Dados
* @param resource $resultado Resultado de uma SQL Query
*
* @return resource
*/
function ListFields($database, $tabela, $resultado){
$this->database = $database;
$this->tabela = $tabela;
$this->resultado = $resultado;
return @mysql_list_fields($this->database, $this->tabela, $this->resultado);
}
/**
* @desc Retorna ponteiro de resultado das tabelas no banco de dados. Utilizado com mysql_table_name.
*
* @param string $database Banco de Dados
* @param resource $resultado Resultado de uma SQL Query
*
* @return
*/
function ListTables($database){
$this->database = $database;
return @mysql_list_tables($this->database);
}
/**
* @desc Libera memria utilizada pelo conjunto de resultados (normalmente desnecessrio).
*
* @param resource $resultado Resultado de uma SQL Query
*/
function FreeResult($resultado){
$this->resultado = $resultado;
return @mysql_free_result($this->resultado);
}
/**
* @desc Retorna o ID de AUTO_INCREMENTED de INSERT ou FALSE se a insero falhou ou
* se a ltima consulta no era uma insero.
*
* @param resource $conexao Resource #ID da Conexao
*
* @return int
*/
function InsertID($conexao){
$this->conexao = $conexao;
return @mysql_insert_id($this->conexao);
}
/**
* @desc Retorna o ID de erro.
*
* @param resource $conexao Resource #ID da Conexao
*
* @return int
*/
function MyErrno($conexao){
$this->conexao = $conexao;
return @mysql_errno($this->conexao);
}
/**
* @desc Retorna um mensagem de erro de texto.
*
* @param resource $conexao Resource #ID da Conexao
*
* @return string
*/
function MyError($conexao){
$this->conexao = $conexao;
return @mysql_error($this->conexao);
}
/**
* @desc Retorna resultado de campo nico. O identificador de campo pode ser :
* deslocamento de campo (0);
* nome de campo (nome);
* nome de tabela de ponto (campo.tabela)
*
* @param int $resultado Resultado de uma SQL Query
* @param int $id_de_campo ID do Campo
* @param int $id_da_coluna ID da Coluna
*
* @return mixed
*/
function MyResult($resultado, $id_do_campo, $id_da_coluna){
$this->resultado = $resultado;
$this->id_campo = $id_do_campo;
$this->id_coluna = $id_da_coluna;
return @mysql_result($this->resultado, $this->id_coluna, $this->id_campo);
}
/**
* @desc Retorna o nmero de de campos em um conjunto de resultados
*
* @param resource $resultado Resultado de uma SQL Query
*
* @return int
*/
function NumFields($resultado){
$this->resultado = $resultado;
return @mysql_num_fields($this->resultado);
}
/**
* @desc Retorna o nmero de linhas em um conjunto de resultados.
*
* @param resource $resultado Resultado de uma SQL Query
*
* @return int
*/
function NumRows($resultado){
$this->resultado = $resultado;
return @mysql_num_rows($this->resultado);
}
/**
* @desc Utilizado com qualquer funo mysql_list para retornar o valor referenciado por um ponteiro de resultado.
*
* @param resource $resultado Resultado de uma SQL Query
* @param int $coluna ID da Coluna
*
* @return mixed
*/
function TableName($resultado, $coluna){
$this->resultado = $resultado;
$this->coluna = $coluna;
return @mysql_table_name($this->resultado, $this->coluna);
}
}
/*
... Exemplo
require('class.dbMySQL.php');
$db = new dbMySQL();
$link_id = $db->Connect($DB_HOSTNAME, $DB_USERNAME, $DB_PASSWORD);
if ($link_id){
$db->dbSelect($DB_DATABASE);
}
$rSet = $db->Query("SELECT * FROM login WHERE login.user='$user' AND login.pass='$senha'");
if ($db->NumRows($rSet) > 0){
$row = $db->FetchObject($rSet);
$_SESSION['user'] = $row->user;
$_SESSION['nome'] = $row->nome;
header("Location: pagina_dos_usuarios_autenticados.php");
}else{
echo "Usurio/Senha invlidos";
}
... Fim de Exemplo
*/
?>