Danygras

Sommaire - interface sql.class.php - mysqlext.class.php - mysqliu.class.php - mypdo.class.php

Abstraction SQL en PHP

<?php
interface sql 
{

	/**
	 * ouvre la connection SQL vers la BDD avec le login et mot de passe, et 
	 * selectionne la BDD
	 * @param $host String
	 * @param $login String
	 * @param $pass String
	 * @param $base String
	 * 
	 */
	function __construct($host,$login,$pass,$base);

	/**
	 * mode debug 
	 * @param $debug booleen
	 * @return void
	 */
	function set_debug($debug);
	
	/**
	 * décalage horaire pour les dates
	 * @param $decal String au format HH:mm:ss (ex: '00:00:00')
	 * @return void
	 */
	function set_dbdecal($var);

	/**
	 * ajouter un préfixe à toutes les tables
	 * @param $var String
	 * @return void
	 */
	function set_prebdd($var);
	
	/**
	 * selon les BDD l'échappement de caractère est spécifique
	 * @param $string String à échapper
	 * @return String
	 */
	function escape_string($string);

	/**
	 * 'analyser' une requête SQL. permet des remplacements (format date ou décalage, préfixe...)
	 * @param $req String
	 * @return String
	 */
	function parse_query($req) ;

	/**
	 * dernier code erreur (ou zéro si la dernière requête est OK)
	 * @return Int
	 */
	function errno();

	/**
	 * dernier message d'erreur
	 * @return String
	 */
	function error();

	/**
	 * dernier id inséré
	 * @return Int
	 */
	function insert_id();

	/**
	 * nb de lignes modifiées par la dernière requête
	 * @return Int
	 */
	function affected_rows();

	/**
	 * rechercher la n'ième ligne et le n'ième champs
	 * @param $res : un objet ''result''
	 * @param $row Int :  la ligne à chercher
	 * @param $field String ou Int : indice du champs à chercher. Si omis, renvoie la ligne complète
	 * @return mixed (String ou Array)
	 */
	function result($res, $row, $field = NULL);
	
	/**
	 * compter le nb de lignes de la ressource
	 * @param $res : objet ''result''
	 * @return Int
	 */
	function num_rows($res);
	
	/**
	 * exécuter la requête 
	 * @param $req : requête SQL
	 * @param $explain : ajouter les explications SQL (requête EXPLAIN)
	 * @return mixed (booleen, objet recordset, ''result'' ...)
	 */
	function query($req, $explain = true);

	/**
	 * libérer un objet
	 * @param $res : objet ''result''
	 * @return booleen
	 */
	function free_result($res);
	
	/**
	 * log une erreur SQL (dans un fichier ou...)
	 * @param $req String
	 * @return String
	 */
	function log_error($req);

	/**
	 * log du texte (dans un fichier ou...)
	 * @param $text String
	 * @return void
	 */
	function log($text);

	/**
	 * exécuter la requête + renvoyer la 1ère ligne uniquement, sous forme d'un tableau
	 * @param $req String
	 * @return Array
	 */
	function make_array_result($req);

	/**
	 * exécuter la requête + renvoyer sous forme d'un tableau
	 * @param $req String
	 * @param $explain : ajouter les explications SQL (requête EXPLAIN)
	 * @return Array
	 */
	function make_array($req, $explain = true);

	/**
	 * exécuter la requête + renvoyer sous forme d'un tableau indexé, la clé du tableau est le champ $idx
	 * @param $req String
	 * @param $idx String : champs à utiliser comme index du tableau
	 * @param $explain : ajouter les explications SQL (requête EXPLAIN)
	 * @return Array
	 */
	function index_array($req, $idx = false, $explain = true);

	/**
	 * exécuter la requête + renvoyer la valeur de la 1ère ligne
	 * remarque : idem que result($sql, 0, $field);
	 * @param $req String
	 * @param $field String : le nom du champs à rendre
	 * @return mixed (String ou Int)
	 */
	function get_result($sql, $field);

	/**
	 * fermeture de la connexion
	 * @return booleen
	 */
	function close();
}

?>