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:
J'ai essayé avec la méthode classique, mysql_connect etc... et dans ce cas tout marche impeccable.
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); }
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); } }
Partager