Function enreg_invitation en pdo

Résolu
Zakarya93 Messages postés 1026 Statut Membre -  
ElementW Messages postés 5690 Statut Contributeur -
Bonjour,

Comment convertir ce code mysql en pdo svp ?

<?php
 
//la fonction qui va enregistrer l'invitation dans la bdd
 
function enreg_invitation()
 
{
$query = mysql_query("
INSERT INTO amis(id_invitation,pseudo_exp,pseudo_dest,date_invitation,date_confirmation,active)
VALUES
 
('','{$_SESSION['pseudo']}','{$_GET['pseudo']}',NOW(),'',0)
 
");
 
 
}
 
?>


Merci d'avance :)

3 réponses

ElementW Messages postés 5690 Statut Contributeur 1 224
 
'lut, décidément, tu va toutes nous les demander?
Lis-donc la doc, c'est trivial...
Allez, je te la donne quand même:
function enreg_invitation() {
	global $bdd;
	$query = $bdd->prepare("INSERT INTO amis(id_invitation,pseudo_exp,pseudo_dest,date_invitation,date_confirmation,active) " .
		"VALUES ('',:sessPseudo,:getPseudo,NOW(),'',0)");
	$req = $query->execute(array(
		":sessPseudo" => $_SESSION['pseudo'],
		":getPseudo" => $_GET['pseudo']
	));
}

Et corriges-moi ce manque cruel d'indentation et ces espacements superflus, c'est illisible. Par ailleurs, prendre les infos directement depuis $_GET ou $_POST est une mauvaise pratique. (quoique pas mortelle vu qu'on utilise les requêtes préparées, ton code précédent était sujet aux injections SQL)
from human import idiocy
del idiocy
0
jordane45 Messages postés 40050 Statut Modérateur 4 754
 
Bonjour,

je suis du même avis que gravgun au sujet de :
"décidément, tu va toutes nous les demander? " ...... je pense que depuis le temps qu'on t'aide.. tu devrais être en mesure de les modifier par toi même non ???
Il te suffit de reprendre les fonctions que nous t'avons précédemment aider à faire et à t'en inspirer... !!!

Par contre gravgun a oublié le global $bdd ... sinon ça ne marchera pas.

Penses aussi à séparer la requête et les params de leur execution (cela permet d'en faire des ECHO si besoin.)

Dans ta requête .. plutot que de mettre l' ID vide .. ne le met pas du tout ! les champs AUTO-INCREMENTES n'ont pas besoin d'être mis dans les requête INSERT.. c'est ta BDD qui s'en occupe tout seul (et ça évite des erreurs....)

et enfin ...AVANT d'utiliser des variables de SESSION ... GET ou POST ... vérifie avec ISSET qu'elles EXISTENT !


function enreg_invitation() {
 global $bdd;
 $pseudoSession = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL;
 $pseudoGet = isset($_GET['pseudo'])?$_GET['pseudo']:NULL;

 if($pseudoSession  && $pseudoGet ){
    $sql = "INSERT INTO amis
             (pseudo_exp,pseudo_dest,date_invitation,date_confirmation,active)
      VALUES (:sessPseudo,:getPseudo,NOW(),'',0)";


   $params = array(
     ":sessPseudo" => $pseudoSession,
     ":getPseudo" => $pseudoGet
    );
   $query = $bdd->prepare($sql);
   $req = $query->execute($params);
 }else{
  echo " Erreur : Une des variables n'existe pas...";
 }
}



Cordialement,
Jordane
0
ElementW Messages postés 5690 Statut Contributeur 1 224
 
Par contre gravgun a oublié le global $bdd
Je vois pas de quoi tu causes :D
0
jordane45 Messages postés 40050 Statut Modérateur 4 754 > ElementW Messages postés 5690 Statut Contributeur
 
pff ....Modifié par gravgun le 12/06/2015 à 19:36 .... petit joueur :-p
0
ElementW Messages postés 5690 Statut Contributeur 1 224 > jordane45 Messages postés 40050 Statut Modérateur
 
Espèce de NSA va!
0
jordane45 Messages postés 40050 Statut Modérateur 4 754
 
Espèce de NSA va!




0
ElementW Messages postés 5690 Statut Contributeur 1 224
 
Où est le fond rouge, la moustache et le regard perçant comme dit dans le livre? (attention je l'ai lu (en anglais)... et pas fini... il y a 4 mois)
0