IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

non-exécution d'un fetch [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 492
    Billets dans le blog
    1
    Par défaut non-exécution d'un fetch
    Bonsoir,

    dans le code ci-dessous, on ne passe pas dans le foreach qui affiche la valeur retournée par la requête SQL (quelconque). Pourquoi ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    if (!empty($sql)) {
    	try{
    		$bdd = new MyPdo();
    	}catch(PDOException $e){
    		echo "argggggggggggggg".$e->getMessage();
    	}
    	echo "<table width='100%' border='1' style='text-align:center'><tr>";
    	$first = true;
    	var_dump($bdd); //on passe bien là
    	foreach ($bdd->query($sql, PDO::FETCH_OBJ) as $ligne) {
    		var_dump($ligne); //on ne passe pas là
    		if ($first) {
    			echo "<tr>";
    			foreach ($ligne as $key => $value) {
    				echo '<th>' . $key . '</th>';
    			}
    			echo "</tr>";
    			$first = FALSE;
    		}
    ...

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Bonjour,

    Et pourquoi tu ne mets pas la requête à l'intérieur du try{} ? C'est bien pour s'en servir qu'on a déclaré le mode exception dans l'initialisation de la connexion. Cela te donnerais les messages d'erreur appropriés.

    Il me semble aussi qu'on a déjà déclaré également le mode PDO::FETCH_OBJ dans l'initialisation de la connexion, donc encore une fois (et je te l'ai déjà dit) IL N'Y A PAS BESOIN DE LE REDECLARER PAR LA SUITE.

    Pour le reste je comprends pas trop l'histoire du deuxième foreach.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi ?
    Parce que ta requête ne retourne rien, soit elle produit une erreur, soit elle ne produit aucun résultat.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,
    tu n'as pas l'impression d'écrire le code en dépit du bon sens ?
    C'est quand même toujours plus ou moins écrit n'importe comment, non ?
    Et tu refais toujours plus ou moins les mêmes erreurs de débutant...

    On est encore quelques uns à avoir encore la bonne volonté de t'aider.
    Tu vas finir par épuiser tout notre quota de patience...

    Même ABCIWEB est en train de craquer...

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 492
    Billets dans le blog
    1
    Par défaut
    Pas la peine de t'énerver ABCIWEB ; en fait, ce n'est pas la même application : ici, c'est un phpMyAdmin-like (bon, pas vraiment), en gros un script qui me permet d'exécuter des requêtes SQL et d'en afficher le retour s'il y en a. (J'avais fait ça à une époque car chez Free, je trouvais phpMyadmin hyper lent donc je préférais m'en passer et en gros, je n'y ai recours que pour faire des imports/exports, et en ayant pris l'habitude, je m'en sers chez tous les hébergeurs).
    Mais du coup, j'ai aligné le connect.php sur l'autre, et du coup, j'ai enlevé le PDO::FETCH_OBJ ; d'autre part, j'ai aussi intégré la requête dans le try.

    Sabotage, je peux tester cela avec n'importe quelle requête et même celles qui doivent retourner quelque chose ne retourne rien ici.

    En fait, même avec echo "<br/>argggggggggggggg ".$e->getMessage(); dans le catch, ça affiche :
    argggggggggggggg SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
    show tables
    ' at line 1
    si je teste avec show tables.

    Bon, Jérôme, ce code est assez ancien, même si je l'ai converti de _mySQL à PDO il y a peut-être 2 ans, mais comme jusque là, il marchait, je ne le modifiais pas...et les erreurs de débutant ici, je les vois pas...

  6. #6
    Invité
    Invité(e)
    Par défaut
    La première "erreur de débutant" est que tu ne sais pas encore effectuer un débogage de base.

    Ensuite, c'est de ne pas appliquer les connaissances que tu as apprises, ou les conseils qui t'ont été donnés.

    Que le code soit ancien ou pas, tu es censé utiliser tes connaissances nouvelles.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    y a que moi qui en connais les URLs


    No more comments...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 492
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 492
    Billets dans le blog
    1
    Par défaut
    Bon OK, il serait plus sûr de proposer une liste d'instructions dans une liste déroulante et de laisser libre le reste, si je mets pas le DROP dans la liste, sauf que je m'en sers aussi, donc comment faire ? Et d'autre part, qu'est-ce que je risque ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    qu'est-ce que je risque ?
    Que quelqu'un, malgré tout, trouve l'URL du fichier (non protégé !) !
    Et sachant que tu utilises sûrement le même type d'URL sur chacun de tes sites, TOUS TES SITES seront vulnérables !
    (du genre : www.site1.com/admin/meme-pas-peur.php - www.site2.com/admin/meme-pas-peur.php - ... !)
    Citation Envoyé par laurentSc Voir le message
    ..., donc comment faire ?
    Lire/étudier les conseils déjà donnés.
    Citation Envoyé par ABCIWEB Voir le message
    ...faire un formulaire d'authentification avec login et mot de passe. C'est pas du temps perdu car tu pourras t'en servir pour tous les espaces administrateur.
    + voir aussi :

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Tu peux trouver ici un exemple de formulaire complet qui permet en plus un hash du mot de passe pour éviter qu'il transite en clair dans les tuyaux.

    L'autre solution donnée en dernier exemple par jreaux62 (authentification via http et htaccess) est plus rapide à mettre en place, mais elle est moins souple d'utilisation, moins transposable d'un site à l'autre et elle n'est pas personnalisable. Mais pour aller vite c'est le minimum vital.

    Enfin bon il faudrait que tu t'intéresse sans plus tarder à la protection d'un espace administrateur (appelé aussi "espace membres" si tu veux plus de réponses dans google). Normalement cela se fait naturellement avant la création d'un espace administrateur, pas après, c'est bizarre que tu n'aies pas compris cette priorité. Tu te serais aperçu qu'on utilise jamais la méthode que tu utilises qui est vraiment trop puérile (en fait elle n'est même jamais mentionnée).

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    J'imagine que la notion d'utilisateur et de privilèges pour une base de données t'es inconnue...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. instruction non exécutée
    Par illegalsene dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/05/2006, 14h42
  2. Non exécution d'une méthode repaint()
    Par Flophx dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 05/05/2006, 18h04
  3. [MySQL] Requête non exécutée
    Par harlock59 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/05/2006, 15h42
  4. On error goto Err : goto non exécutée au 2ème appel
    Par charliejo dans le forum Access
    Réponses: 1
    Dernier message: 11/04/2006, 15h00
  5. INCLUDE non exécuté
    Par Sadneth dans le forum ASP
    Réponses: 3
    Dernier message: 07/09/2003, 00h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo