Fonction dans fonction: conservé les variables
Résolu
ntaie41
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
ntaie41 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
ntaie41 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créer deux fonction:
-une pour me connecter à ma base (bddconnect)
-une autre pour entrer une information dans la base.
Le problème étant que la variable de la base ne se conserve pas.
La page m'affiche:
Je vous donne le code:
Merci d'avance.
J'ai créer deux fonction:
-une pour me connecter à ma base (bddconnect)
-une autre pour entrer une information dans la base.
Le problème étant que la variable de la base ne se conserve pas.
La page m'affiche:
PHP Notice: Undefined variable: bdd in - on line 15 PHP Notice: Undefined variable: bdd in - on line 18 PHP Fatal error: Call to a member function prepare() on a non-object in - on line 18.
Je vous donne le code:
<?php //Fonction de connexion à la base de donnée function bddconnect () { $dns = 'mysql:host=localhost;dbname=mabase'; $utilisateur = 'root'; $motDePasse = 'root'; $bdd = new PDO( $dns, $utilisateur, $motDePasse ); } function insert() { bddconnect ($bdd); $requete = "INSERT INTO Membre (id_user, user) VALUES (:unNom, :unPrenom)"; $stmt = $bdd->prepare($requete); $nom = 'Dupont'; $prenom = 'Jean'; $stmt->bindParam('unNom', $nom); $stmt->bindParam('unPrenom', $prenom); //On ajoute Jean Dupont $stmt->execute(); //On modifie la valeur des variables $nom='Duval'; $prenom='Robert'; //On ajoute Robert Duval $stmt->execute(); } addfriends('1','2'); ?>
Merci d'avance.
A voir également:
- Fonction dans fonction: conservé les variables
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
6 réponses
Salut salut,
Dans ta fonction bddconnect() , ajoute
du coup tu feras $cnx=bddconnect(); hors de la fonction insert
et dans ta fonction insert passe lui en paramètre la variable $cnx lorsque tu l'utilises
Résolu? ===> [RESOLU]
Dans ta fonction bddconnect() , ajoute
return $bdd;
du coup tu feras $cnx=bddconnect(); hors de la fonction insert
et dans ta fonction insert passe lui en paramètre la variable $cnx lorsque tu l'utilises
Résolu? ===> [RESOLU]
Salut,
c'est normal, une variable créée dans une fonction a une porte privée, elle n'est pas visible hors de cette fonction.
c'est normal, une variable créée dans une fonction a une porte privée, elle n'est pas visible hors de cette fonction.
Bonjour,
Merci d'avoir répondu aussi vite mais ça ne marche pas. J'ai du mal comprendre et mal placés tes explications. Peux-tu me corriger ?
Merci d'avoir répondu aussi vite mais ça ne marche pas. J'ai du mal comprendre et mal placés tes explications. Peux-tu me corriger ?
<?php //Fonction de connexion à la base de donnée function bddconnect () { $dns = 'mysql:host=localhost;dbname=mabase'; $utilisateur = 'root'; $motDePasse = 'root'; $bdd = new PDO( $dns, $utilisateur, $motDePasse ); return $bdd; } $cnx=bddconnect(); //Ajout d'un amis function insert() { bddconnect ($bdd); $requete = "INSERT INTO Membre (id_user, user) VALUES (:unNom, :unPrenom)"; $stmt = $bdd->prepare($requete); $nom = 'Dupont'; $prenom = 'Jean'; $stmt->bindParam('unNom', $nom); $stmt->bindParam('unPrenom', $prenom); //On ajoute Jean Dupont $stmt->execute(); //On modifie la valeur des variables $nom='Duval'; $prenom='Robert'; //On ajoute Robert Duval $stmt->execute(); } addfriends('1','2'); ?>
c'est un peu mieux, mais dans la même logique, dans ta 2ème fonction, tu essayes d'appeler une variable qui n'existe pas au niveau de la fonction : $bdd
déjà, il serait plus logique d'utiliser le $cnx que tu viens de faire, tu ne crois pas ?
Et dans tous les cas, pour que cette variable soit accessible, soit tu la passes en argument de ta fonction, soit tu fais un global $cnx en début de fonction.
déjà, il serait plus logique d'utiliser le $cnx que tu viens de faire, tu ne crois pas ?
Et dans tous les cas, pour que cette variable soit accessible, soit tu la passes en argument de ta fonction, soit tu fais un global $cnx en début de fonction.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai corrigé mais même erreur:
et mon code:
PHP Fatal error: Call to undefined function addfriends() in - on line 35
et mon code:
<?php //Fonction de connexion à la base de donnée function bddconnect () { $dns = 'mysql:host=localhost;dbname=tomorrow'; $utilisateur = 'root'; $motDePasse = 'root'; $bdd = new PDO( $dns, $utilisateur, $motDePasse ); return $bdd; } $cnx=bddconnect(); //Ajout d'un amis function insert ($id_user, $id_user_invite) { bddconnect (); $requete = "INSERT INTO Membre (id_user, user) VALUES (:unNom, :unPrenom)"; $stmt = $cnx->prepare($requete); $nom = 'Dupont'; $prenom = 'Jean'; $stmt->bindParam('unNom', $nom); $stmt->bindParam('unPrenom', $prenom); //On ajoute Jean Dupont $stmt->execute(); //On modifie la valeur des variables $nom='Duval'; $prenom='Robert'; //On ajoute Robert Duval $stmt->execute(); } addfriends('1','2'); ?>
si justement j'ai omis de le faire dans le sujet mais la fonction addfriend correspond à insert.<code<?php
//Fonction de connexion à la base de donnée
function bddconnect ()
{
$dns = 'mysql:host=localhost;dbname=tomorrow';
$utilisateur = 'root';
$motDePasse = 'root';
$bdd = new PDO( $dns, $utilisateur, $motDePasse );
return $bdd;
}
$cnx=bddconnect();
//Ajout d'un amis
function insert ($id_user, $id_user_invite)
{
bddconnect ();
$requete = "INSERT INTO Membre (id_user, user) VALUES (:unNom, :unPrenom)";
$stmt = $cnx->prepare($requete);
$nom = 'Dupont';
$prenom = 'Jean';
$stmt->bindParam('unNom', $nom);
$stmt->bindParam('unPrenom', $prenom);
//On ajoute Jean Dupont
$stmt->execute();
//On modifie la valeur des variables
$nom='Duval';
$prenom='Robert';
//On ajoute Robert Duval
$stmt->execute();
}
insert('1','2');
?></code>
//Fonction de connexion à la base de donnée
function bddconnect ()
{
$dns = 'mysql:host=localhost;dbname=tomorrow';
$utilisateur = 'root';
$motDePasse = 'root';
$bdd = new PDO( $dns, $utilisateur, $motDePasse );
return $bdd;
}
$cnx=bddconnect();
//Ajout d'un amis
function insert ($id_user, $id_user_invite)
{
bddconnect ();
$requete = "INSERT INTO Membre (id_user, user) VALUES (:unNom, :unPrenom)";
$stmt = $cnx->prepare($requete);
$nom = 'Dupont';
$prenom = 'Jean';
$stmt->bindParam('unNom', $nom);
$stmt->bindParam('unPrenom', $prenom);
//On ajoute Jean Dupont
$stmt->execute();
//On modifie la valeur des variables
$nom='Duval';
$prenom='Robert';
//On ajoute Robert Duval
$stmt->execute();
}
insert('1','2');
?></code>