Bonjour,
C'est étrange et je ne comprends pas, cette partie PHP fonctionne bien en local, mais pas sur le serveur distant, pourtant c'est le même code et la même base de données.
Le code PHP :
Si je fais un echo de $user->id, sur mon serveur localhost et sur le serveur distant, j'ai le même résultat : 11582761405037991XXXX
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $statement = $mysqli->prepare("INSERT INTO google_users (google_id, google_name, google_email, google_link, google_picture_link) VALUES (?,?,?,?,?)"); $statement->bind_param('issss', $user->id, $user->name, $user->email, $user->link, $user->picture); $statement->execute(); echo $mysqli->error;
Dans ma base de données en local, j'ai bien cet ID, mais dans la base sur le serveur distant cela m'insère l'ID : 922337203685477XXXX
21 chiffres en local et seulement 19 sur le serveur distant et en plus différents. Pourquoi cela n'insère pas correctement les 21 chiffres sur la base de données du serveur distant ?
Pourtant, pour créer la table, j'ai fait un export de ma base local comme ceci :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE TABLE `google_users` ( `google_id` decimal(21,0) NOT NULL, `google_name` varchar(60) NOT NULL, `google_email` varchar(60) NOT NULL, `google_link` varchar(60) NOT NULL, `google_picture_link` varchar(200) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Index pour la table `google_users` -- ALTER TABLE `google_users` ADD PRIMARY KEY (`google_id`);
Comme si sur le serveur distant, il n'était pas possible d'avoir un champs du type decimal(21,0).
Merci pour votre aide,
Vincent.
Partager