Sqlal : classe sql pour mysql, mysqli, sqlite, sql server, et odbc

Description

Bonjour à tous!

Depuis le temps que je viens prendre des scripts à droite à gauche sur ce site, il est temps que je poste mon premier!

SQLAL : SQL Abstraction Layer
Il s'agit d'une classe PHP permettant, via un jeu de méthodes unique, de piloter au choix l'une des BDD suivantes :
MySQL(i), SQLite, SQL Server (mssql), et ODBC.

Vous trouverez deux fichiers : Le code de la classe, et un fichier texte expliquant comment utiliser la classe.
Si vous préférez, la classe est entièrement documentée pour Doxygen. Il vous suffit donc de la passer dans la moulinette doxygen pour avoir la doc complète. ;)

Merci d'avance pour vos commentaires & suggestions. ;)

Boris

Source / Exemple :


<?php

require_once("sqlal.class.php");

$mode_sql = "mysql"; // ou mysqli, mssql, sqlite, odbc
$dbhost = "localhost";
$dblogin = "login";
$dbpass = "password";
$dbname = "ma_base";

$sql = new sqlal($mode_sql, $dbhost, $dblogin, $dbpass, $dbname);

// Utilisation simple
$sql->query("SELECT nom, prenom FROM users;");
while($ligne = $sql->fetch_assoc()) {
    echo $ligne["nom"]." ".$ligne["prenom"]."<br />";
}

// Utilisation avec deux requêtes imbriquées
// Les requêtes ne veulent pas dire grand chose, c'est juste pour exemple. ;) 
$sql->query("SELECT id FROM table_1 WHERE champ1 = '50';", "requete1");
while(list($id) = $sql->fetch_row("requete1")) {
    $sql->query("SELECT nom, prenom FROM table_2 WHERE champ2 = '".$id."';", "requete2");
    $resultat = $sql->fetch_assoc("requete2");
    echo $resultat["nom"]." ".$resultat["prenom"]."<br />";
}

// Statistiques
echo "<br />Nombre de requêtes SQL : ".$sql->get_nb_sql_query()."<br />";
echo "Temps d'exécution SQL en secondes : ".$sql->get_sql_query_time(); // Ou encore $sql->get_sql_query_time("s")
echo "Temps d'exécution SQL en milli-secondes : ".$sql->get_sql_query_time("ms");

?>

Conclusion :


Il ne s'agit pas d'une solution "parfaite", mais je pense que c'est déjà un bon début pour améliorer la portabilité d'un logiciel.

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.