PHP Classes
elePHPant
Icontem

PHPMafia SQL: Database abstraction with query retrieval to XML

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Info   View files View files (5)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings  
2007-02-09 (8 years ago) RSS 2.0 feedNot enough user ratingsTotal: 569 All time: 5,022 This week: 1,125Up
Version License Categories  
phpmafiasql 1.0BSD LicenseXML, PHP 5, Databases
Description Author  

This package is a SQL database abstraction.

It provides a common API to retrieve access SQL databases. Currently it supports MySQL and PostgreSQL.

The package also comes with a class that can generate XML documents from database query results.

Picture of Marcelo Costa
Name: Marcelo Costa <contact>
Classes: 9 packages by
Country: Brazil Brazil
Age: ???
All time rank: 35129 in Brazil Brazil
Week rank: 227 Up17 in Brazil Brazil Up
Innovation award
Innovation award
Nominee: 1x

Details provided by the author  
* Classe que conecta a um 
* banco de dados relacional
* @author Marcelo Soares da Costa
* @email phpmafia at yahoo dot com dot br
* @copyright Marcelo Soares da Costa © 2006. 
* @license FreeBSD 
* @version 1,0
* @package phpmafiasql
* @data 2006-10-18

O pacote phpMafiaSQL é composto de duas classe básicas obrigatórias e uma classe opcional,
a classe phpMafiaRelDB é uma classe privada que faz uma abstração simples do banco de dados,
e a classe phpMafiaSQL é a classe que deve ser instanciada para acesso ao bancoi de dados e a
classe opcional phpMafiaSql2Xml que permite montar um xml, formatado ou não, a partir de uma 
Query.

phpMafiaRelDB -> Seta a conexão com o banco de dados em seu construtor e verifica qual o método
deve ser utilizado em função do banco de dados escolhido, seu escopo é fundamentalmente privado.
A configuração padrão da classe é setada pelos valores das constantes:

define("RELDB", "MYSQL");
define("DATABASE", "bdteste");
define("HOST", "localhost");
define("USER", "root");
define("PASSWORD", "");

O construtor da classe permite que seja alterado qualquer um desses valores.


phpMafiaSQL -> Prove os recursos para manipulação do banco de dados.

metodo de uso :

Declarar o arquivo da classe:
include_once ("class_mafiasql.php");

Construir o objeto de conexão

$Objeto=new phpmafiasql();

Opcionalmente pode alterar os valores definidos nas constantes

$Objeto=new phpmafiasql(array("host"=>"localhost","database"=>"bancodedados",etc ....));

A prática demostra que em 90% do uso de classes de banco de dados se faz passando um select
para obter um array de resultados, para automatizar essa utilização foi criado um metodo.

foreach ($Objeto->sql2assocarray("SELECT * FROM tablename") as $dataline)
        {
        id = $dataline["id"];
        ....
        }

ou para sua verificação

var_dump($Objeto->sql2assocarray("SELECT * FROM tablename"));

Metodos tradicionais:

$Objeto=new phpmafiasql();

$Objeto->setsql($SQL);

retorna numero de resultados retornados se for select

retorna o numero de resultados afetados se for update ou delete

retorna o ultimo indice, last id, se for insert

exige que para querys de update e delete a clausula "WHERE"

para retornar os valores de um select pode-se usar:

$Objeto->getassocarray(); // para retornar um array associativo do banco de dados

$Objeto->getarray(); // para retornar um array numérico do banco de dados

$Objeto->getrow(0); // para retornar um unico campo de um banco de dados

phpMafiaSql2Xml-> retorna um xml simples ou formatado

metodos de uso :

include_once ("class_mafiasql2xml.php");
$Objeto=new phpmafiasql2xml();

metodos opcionais
$Objeto->simplexml($SQL); // monta um simples xml <root><row id="2" ... /></root>

$Objeto->simpledomxml("root","row",$SQL); // monta um simples domxml <root><row><dataname>datavalue</dataname></row></root> 

$srtingxml=$Objeto->xml2string(); // coloca todo o xml em uma string

$Objeto->printxmlarray();// imprime o xml sem formatação

$Objeto->xsltstyle('defaultDataGrid.xsl'); // imprime um xml formatado por teste.xsl

$Objeto->xml4xls("http://localhost/testexml.php","defaultDataGrid.xsl"); // imprime um xml local processsado ou remoto especifico com a formatação do xsl

Nota : Essa função permite que um xml local seja lido após ser processado pelo servidor, evitando a leitura direta do arquivo sem ser processado,
 o xsl tambem pode ser uma arquivo remoto, mas se for dinamico como .php, tem que ser chamado após ser processado também, http://xsl_url....
 
Esse pacote é distribuido sobre licensa freebsd

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

   1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
   2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

http://www.freebsd.org/copyright/freebsd-license.html
  Files folder image Files  
File Role Description
Plain text file class_mafiarelbd.php Class base class
Plain text file class_mafiasql.php Class abstract class
Plain text file class_mafiasql2xml Class export sql to xml and xsl
Accessible without login Plain text file readme.txt Doc. readme file
Accessible without login Plain text file _autoloadclass.php Conf. config script

 Version Control Unique User Downloads Download Rankings  
 0%Total:569All time:5,022
 This week:0This week:1,125Up