Bonjour,

Un groupe d'amis et moi sommes en charge de la création d'un service de notifications push via Google Cloud Messaging pour notre projet tuteuré au cours de notre formation en DUT Informatique.

Etant d'un niveau très moyen en PHP, nous avons rechercher pas mal de tutos sur le net pour nous aider, et sommes tombés sur un tuto vraiment très bien qui avait l'air de bien marcher.
Cependant, cette version n'est plus prise en charge car ce n'est pas en PDO (ou Mysqli) et rends donc le tout obsolète maintenant que le php 5.5 existe.

Voici le code que nous avons repris qui est obsolète : http://www.androidhive.info/2012/10/...php-and-mysql/


J'ai donc procédé à quelques changements pour essayer d'établir une connexion via PDO, mais cela ne marche pas comme nous le voudrions.
Si j'ai bien compris, les seuls choses qu'il faut changer se trouvent dans le db_connect.php et db_function.php.

Voici donc les changements que nous avons effectués dans ces deux fichiers (gardez en tête que nous sommes débutant en php, donc il se peut que vous trouviez des choses vraiment absurdes dans notre code que nous n'aurions pas remarqué)

db_connect.php (modifié)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
 
class DB_Connect {
 
 
 
    // constructor
    function __construct() {
 
    }
 
    // destructor
    function __destruct() {
        // $this->close();
    }
 
    // Connecting to database
    // Connecting to database
    public function connect() {
        require_once 'config.php';
 
        try
        {
            $bdd = new PDO('mysql:host='.DB_HOST.';dbname='. DB_DATABASE, DB_USER, DB_PASSWORD);
        }
        catch (Exception $e)
        {
            echo 'Une erreur est survenue !';
            echo 'Erreur : '.$e->getMessage().'<br />';
            echo 'N° : '.$e->getCode();
            die('Erreur : ' . $e->getMessage());
        }
 
        return $db;
 
    }
 
 
    function getDb() {
       if ($this->db instanceof PDO) {
            return $this->db;
       }
    }
 
    // Closing database connection
    function close() {
        mysql_close();
    }
 
}
?>
db_function.php (modifié)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
 
class DB_Functions {
 
    private $db;
 
    //put your code here
    // constructor
    function __construct() {
        include_once './db_connect.php';
        // connecting to database
        $this->db = new DB_Connect();
        $this->db->connect();
 
 
    }
    // destructor
    function __destruct() {
 
    }
 
    /**
     * Storing new user
     * returns user details
     */
    public function storeUser($name, $email, $gcm_regid) {
        // insert user into database
        $result = mysql_query("INSERT INTO gcm_users(name, email, gcm_regid, created_at) VALUES('$name', '$email', '$gcm_regid', NOW())");
        // check for successful store
        if ($result) {
            // get user details
            $id = mysql_insert_id(); // last inserted id
            $result = mysql_query("SELECT * FROM gcm_users WHERE id = $id") or die(mysql_error());
            // return user details
            if (mysql_num_rows($result) > 0) {
                return mysql_fetch_array($result);
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
 
    /**
     * Get user by email and password
     */
    public function getUserByEmail($email) {
        $result = mysql_query("SELECT * FROM gcm_users WHERE email = '$email' LIMIT 1");
        return $result;
    }
 
    /**
     * Getting all users
     */
    public function getAllUsers() {
        // $result = mysql_query("select * FROM gcm_users");
       $result = $this->db->getDb()->query("select * FROM gcm_users");
       $result->closeCursor();
 
       return $result;
    }
 
    /**
     * Check user is existed or not
     */
    public function isUserExisted($email) {
        $result = mysql_query("SELECT email from gcm_users WHERE email = '$email'");
        $no_of_rows = mysql_num_rows($result);
        if ($no_of_rows > 0) {
            // user existed
            return true;
        } else {
            // user not existed
            return false;
        }
    }
 
}
Merci d'avance pour ceux qui auront prit le temps de tout lire, en espérant que vous pourrez nous aider