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