Ces fonctions ont surtout pour but de ne pas se trimbaler avec toutes les fonctions de mysql dans la tête, et permet de récupérer un tableau, que je trouve pour ma part, très pratique car il contiendra les noms des champs en nom de colonne. Et enfin, elles permettent la gestion de petites statistiques afin de savoir la durée maximale d'ouverture de la base de donnée.
Le défaut que je viens de trouver (en parcourant le forum), c'est que ces fonctions sont très utiles s'il n'y a qu'une seule base... mais ca doit bien pouvoir se modifier s'il y en a plusieurs... (le pire c'est que mon précédent script le faisait)... il suffit en fait de mettre le global $reference_bd_ouverte dans l'argument des fonctions.
my (pour mysql oh c'est original !! et aussi parce que c'est moi qui l'est faite) + operation
open = ouvrir
exec = executer
close = fermer
dernid = valeur du dernier element ajouté.
A noté qu'il s'agit de mysql 4.1 (mysqli) dans l'exemple par défaut, mais passer à une version mysql il suffit de remplacer les commandes mysql par celles qui sont en commentaire
Fonction pour se connecter (un peu de forcing...
<?
function myopen()
{
global $duree_ouverture_bd, $reference_bd_ouverte, $nb_de_requete;
$duree_ouverture_bd = explode(" ",microtime());
$nb_de_requete = 0;
$hostname_base = "";
$database_base = "";
$username_base = "";
$password_base="";
if($reference_bd_ouverte = @mysqli_connect($hostname_base, $username_base, $password_base, $database_base))
return $reference_bd_ouverte;
else
return myopen();
/* MYSQL 4.0 et inf
if($reference_bd_ouverte = @mysql_connect($hostname_base, $username_base, $password_base))
{
mysql_select_db($database_base);
return $reference_bd_ouverte;
}
else
return myopen();
*/
}
Fonction pour exécuter une requete, renvoyer un tableau, afficher une erreur,
function myexec($commande,$chut=false)
{ // $commande = requete sql, $chut = si vrai => si erreur aucun affichage
global $nb_de_requete,$reference_bd_ouverte;
$nb_de_requete++;
if(!$reference_bd_ouverte)
$reference_bd_ouverte = myopen();
$tableau = @mysqli_query($reference_bd_ouverte,$commande);
if(mysqli_error($reference_bd_ouverte))
{
if(!$chut)
print ("<br />".mysqli_error($reference_bd_ouverte)."<br />Commande : ".$commande."<br />");
$contenu['chut']=1;
}
$i=1;
while($ligne = @mysqli_fetch_assoc($tableau))
$contenu[$i++]=$ligne;
/* MYSQL 4.0 et inf
$tableau = @mysql_query($commande,$reference_bd_ouverte);
if(mysql_error($reference_bd_ouverte))
{
if(!$chut)
print ("<br />".mysql_error($reference_bd_ouverte)."<br />Commande : ".$commande."<br />");
$contenu['chut']=1;
}
$i=1;
while($ligne = @mysql_fetch_assoc($tableau))
$contenu[$i++]=$ligne;
*/
return $contenu;
}
Fonction pour fermer la connection (et faire un peu de statistiques)
function myclose()
{
global $duree_ouverture_bd,$reference_bd_ouverte;
if($reference_bd_ouverte)
{
mysqli_close($reference_bd_ouverte);
/* MYSQL 4.0 et inférieur
mysql_close($reference_bd_ouverte);
*/
$duree_ferm = explode(" ",microtime());
$duree_ouverture_bd[0] = $duree_ferm[0]- $duree_ouverture_bd[0];
$duree_ouverture_bd[1] = $duree_ferm[1]- $duree_ouverture_bd[1];
if($duree_ouverture_bd[0]+$duree_ouverture_bd[1]>file_get_contents("tps_connection_bd.txt"))
{
$f = fopen("tps_connection_bd.txt","w");
fputs($f,$duree_ouverture_bd[0]+$duree_ouverture_bd[1]);
fclose($f);
}
}
}
Renvoyer le dernier id ajouté (rien d'exceptionnelle celle là, mais j'arrivais jamais à me souvenir du nom entier de la fonction function mydernid()
{ // retourne la valeur du dernier enregistrement ajouté
global $reference_bd_ouverte;
return mysqli_insert_id($reference_bd_ouverte);
/* MYSQL 4.0 et inférieur
return mysql_insert_id($reference_bd_ouverte);
*/
}
?>
Pitié soyez indulgeant !!! Massacrez pas mon espoir d'avoir fait un truc bien !!!!!