Function enreg_invitation en pdo

Résolu
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   -  
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   -
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 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Par contre gravgun a oublié le global $bdd
Je vois pas de quoi tu causes :D
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention  
 
pff ....Modifié par gravgun le 12/06/2015 à 19:36 .... petit joueur :-p
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Espèce de NSA va!
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Espèce de NSA va!




0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
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