Bonjour à tous,

Je viens de rencontrer un problème avec PDO et mes connaissances étant un peu limitée dans cet outil j'espère trouvé ici un peu d'aide.

Mon problème est le suivant:

Lorsque j'exécute une requête SELECT où je demande qu'un seul champ, il n'y a aucun problème. Le retour est bon.

ex:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
	public function login($login, $password) {
 
			$sql = "SELECT login FROM user WHERE login = '$login' and password = SHA1('$password')";
			return $this->db->query($sql);
	}

En revanche, dès lors que je demande plusieurs champs dans ma requête SQL, le navigateur galère: il y a marqué dans la barre d'état: en attente de localhost (au passage j'utilise la dernière version de XAMPPLITE).

Puis ça se termine au bout d'une ou 2 secondes avec un message de "Connexion interrompue" (La connexion avec le serveur a été réinitialisée pendant le chargement de la page).

Ex:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
	public function login($login, $password) {
 
			$sql = "SELECT * FROM user WHERE login = '$login' and password = SHA1('$password')";
			return $this->db->query($sql);
	}
J'ai essayé avec la méthode classique, mysql_connect etc... et dans ce cas tout marche impeccable.


Voila, vous savez tout, j'espère que vous pourrez m'aider car entre PDO et moi notre relation démarre plutôt mal .

D'avance merci,
(Je vous pris de m'excuser si il existe déjà un topic à ce sujet, il m'a échappé.)


Mathieu.

ps: ma class connexion si besoin

Code : 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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Connexion {
 
   public $dsn;
   public $db;
   public $username;
   public $password;
 
   public function __construct() {	
 
	  $this->username = root;
	  $this->password = '';
 
	  $this->dsn = 'mysql:host=localhost;dbname=w';  
	  self::connect();   
   }
 
   public function connect() {
 
      try {
 
	     $this->db = new PDO($this->dsn, $this->username, $this->password);
	     $this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE);
	     $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions
		 $this->db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules
 
      } catch (PDOException $e) {
	     echo 'Erreur: ' . $e->getMessage();
	  }
 
   }
 
	public function login($login, $password) {
 
			$sql = "SELECT * FROM user WHERE login = '$login' and password = SHA1('$password')";
			return $this->db->query($sql);
	}
 
}