Problème PDO

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 : Problème PDO

par x@v » 25 janv. 2008, 02:06

à mon avis tes fonctions peuvent être améliorés.
Transactions et requete préparé sont quand exceptionnelle pour la persistence en terme de sécurité et rapidité.
http://fr3.php.net/manual/fr/ref.pdo.php

par Ryle » 10 janv. 2008, 20:33

Il y a effectivement un petit malentendu sur le global (un peu mélangé avec la notion de static par nounet) mais le problème vient sans doute bien de là : au premier appel à sql_exec() ou sql(), tu vas écraser la connexion que tu as ouverte au début avec la valeur NULL. Du coup, au second appel à ces fonctions, tu n'auras plus l'instance de PDO dans $connexion et tu ne pourras plus appeler de méthode dessus :)

par Berzemus » 10 janv. 2008, 20:28

S'il ne mettait pas global $connexion au début de ses fonctions, il ne pourrait accéder à la variable globale. (petit lien)

Pour te répondre, est-ce que tu sais si les les plugins nécessaires à pdo sont activés sur ton serveur de prod ?[/url]

par nounet » 10 janv. 2008, 18:58

commence par ne pas redefinir ton global $connexion car le propre d'etre global c'estjustement d'etre disponible depuis n'importe quel fonction si tu le redefinis il pert sa connection.

d'autre part ,essaye a cemoment la de copier ta premier eligne de connection dans ta premiere fonction ,ca devrait mieux marcher.

Problème PDO

par saebakun » 10 janv. 2008, 17:49

Bonjour,

j'ai devellopé un site sur mon poste avec WAMP5 et j'utilise PDO pour mes connection vers un mysql

Jusque là tout va bien :)

Par contre j'ai dûe mettre ma prog sur le serveur de production qui lui utilise Win2003 avec IIS donc plus de WAMP

Et là j'ai des erreurs PDO:

Code : Tout sélectionner

Fatal error: Call to a member function fetchAll() on a non-object
J'ai bien recopié ma base elle apparait niquel dans le phpmyadmin, j'ai même essayé de modifier mon mot de pass de login dans la config de connexion vers mysql et si le mot de passe est mauvais il m'indique bien une erreur.

Si je met un nom de base bidon il me met une erreur aussi et si je met un mauvais user j'ai aussi une erreur.

Donc il reconnait bien tout ça ....

j'ai ça en code:
GLOBAL $connexion;
try{
	
 $connexion = new PDO("mysql:host=localhost;dbname=basecible", "root", "root");
 
}catch(Exception $e){
 echo 'Erreur : '.$e->getMessage().'<br />';
 echo 'N° : '.$e->getCode();
}

function sql($query){
	GLOBAL $connexion;
	$resultats=$connexion->query($query);
	$data=$resultats->fetchAll(PDO::FETCH_ASSOC);
	return $data;
	$resultats->closeCursor();
	$connexion = NULL;
}

function sql_exec($query){
	GLOBAL $connexion;
	if($resultats=$connexion->exec($query) === FALSE){
	$data=false;
	}else{
	$data=true;
	}
	return $data;
	$resultats->closeCursor();
	$connexion = NULL;
}
Et quand je fais un
sql('une requete');
il me dit que j'ai une erreur sur la ligne

Code : Tout sélectionner

$resultats=$connexion->query($query);
Merci