[RESOLU] PDO-Mysql avec place holders

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] PDO-Mysql avec place holders

Re: PDO-Mysql avec place holders

par Cypher_PHP » 31 janv. 2013, 15:33

j'ai trouvé
c'est ma faute
en fait, c'était un data vide

je mets en résolu

Re: PDO-Mysql avec place holders

par Cypher_PHP » 31 janv. 2013, 14:05

Code : Tout sélectionner

<?php define('DB_HOST', 'localhost'); define('DB_DATABASE', 'xxx'); define('DB_USERNAME', 'xxxx'); define('DB_PASSWORD', 'xxxx'); function ConnDB(){ global $db; try{ $db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_DATABASE, DB_USERNAME, DB_PASSWORD,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); echo "Connexion réussie<br />"; }catch(Exception $e){ echo "Connexion pas réussie<br />"; echo "Erreur : ".$e->getMessage()."<br />"; echo "N° : ".$e->getCode(); } } ?>

Re: PDO-Mysql avec place holders

par Perine » 31 janv. 2013, 14:00

fetchAll() retourne un tableau de tableaux.
Et ce tableau de tableaux, tu le mets dans un autre tableau.

Tu dois utiliser fetch() si tu veux garder la boucle ou retourner directement le résultat de fetchAll().

D'ailleurs pourquoi utilises-tu global ? C'est un très mauvais style. Envoie l'objet PDO à la fonction proprement (cf. Injection de dépendances).

PDO-Mysql avec place holders

par Cypher_PHP » 31 janv. 2013, 13:36

Bonjour

Je suis en train de tester sur les différentes méthodes de PDO (requête préparée ou non, place holders, etc...)
Je vous rappelle que je ne suis pas calé sur PDO puisque je me lance maintenant dans cette aventure

merci beaucoup

Code : Tout sélectionner

<?php function select_prepare_languages__place_holders_id(){ global $db; $sql = "SELECT id, title FROM languages WHERE id = ? "; $stm = $db->prepare($sql); $stm->bindValue(1, 6, PDO::PARAM_INT); $stm->execute(); $result = array(); while( $rows = $stm->fetchAll() ){ $result[] = $rows; } return $result; } ?>
on affiche les résultats mais ils sont vides ou inexistants

Code : Tout sélectionner

<?php $rows = select_prepare_languages__place_holders_id(); foreach ($rows as $row) { echo $row->title."<br/>"; } ?>
quel est le problème?
merci beaucoup