Function php() - un petit coup de pouce

  • Auteur de la discussion Auteur de la discussion ZelkiN
  • Date de début Date de début
Bonjour à vous WRInautes ;)

Je suis entrain de faire une fonction PHP appelé last_transaction($usersid,$number) mais je rencontre un problème tout simple... mais que je n'arrive cependant pas à régler.

En effet je fais une requête select dans cette fonction, jusqu'à la rien de bien méchant, le truc c'est que ca me met une erreur, la variable $bdd (permettant la connexion a la base de donnée) est introuvable. Elle est pourtant bien défini précedemment...

FONCTION COMPLETE
function last_transaction($usersid,$number) {
require_once('../bdd/bdd.php');
$query_transac = "SELECT usersID, title, montant, date FROM users_transaction WHERE usersID='$usersid'";
$rs_transac = mysql_query($query_transac, $bdd) or die(mysql_error());
$transac = mysql_fetch_assoc($rs_transac);
echo $transac['title'];
}

Est ce que quelqu'un aurait une idée sur ce probleme ? Sachant que si je ne fais appel a ma bdd il n'y a pas de souci, Merci
 
Code:
function last_transaction($usersid,$number) {
	global $bdd;
	require_once('../bdd/bdd.php');
	$query_transac = "SELECT users
	....
 
Ok merci ca marche nikel, en revanche j'ai entendu dire que les superglobales favorisaient les failles de sécurité ?! Ca craint quelque chose la dedans ?
 
On préfère effectivement éviter le plus possible l'utilisation des variables globales.
Le problème de ces dernières, c'est que tu n'es jamais sur du contenu. En théorie, elle contient ta connexion à la BDD, mais en pratique, elle peut être modifiée à tout moment, pour une raison ou une autre.

Une solution est de mettre ta ressource dans une fonction.
Voici un exemple :
Code:
# dans ton fichier bdd.php

function getConnection() {
    static $bdd = null;
    
    if ($bdd !== null) {
        return $bdd;
    }
    
    // ton autre code pour initialiser la connexion
}

// ensuite, dans ta fonction last_transaction :
function last_transaction($usersid,$number) {
    $bdd = getConnection();
}

De cette manière, tu es certain du contenu de $bdd (qui est locale dans les fonctions).

Il existe bien entendu plusieurs façon de procéder.
 
J'ai l'impression qu'il y a une erreur Blount, en effet quand j'applique ta méthode la var $bdd n'est pas trouvé ce qui met en erreur la requete SQL (code ci joint)

mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\*******\function.php on line 18
 
Peut-être que les ressources ne sont pas prises en compte avec "static" alors.

Montre nous ton code.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut