bonjour,
je viens de convertir mon logiciel et ma base de données en UTF8.
J'enregistre les formulaires que ce soit en php ou via l'ajax, toutes les modifications se passent bien.
Je souhaite à présent tester les nouveaux enregistrements en base de données.
Malheureusement, suite à l'ajout de la mention set_charset, lorsque je demande le dernier insert_id, il me ressort toujours 0, alors que l'enregistrement a bien eu lieu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 q("INSERT INTO utilisateurs (date_ajout, ajoute_par) VALUES (now(), {$_SESSION['id_utilisateur']})"); echo "sans id"; echo $_POST['id'] = qLastId(); echo "avec nouvel id";
Y-aurait-il un conflit ou quelque chose que je fais mal ?
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 function &qConnect() { static $mysqli = null; if($mysqli === null) $mysqli = new mysqli("localhost", DB_USER, DB_PSW, DB_NAME); if ($mysqli->connect_errno) die("Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); /* Modification du jeu de résultats en utf8 */ if (!$mysqli->set_charset("utf8")) { printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); } else { printf("Jeu de caractères courant : %s\n", $mysqli->character_set_name()); } return $mysqli; } /** * Effectue une requête sql * * @param type $sql * @return type */ function q($sql) { return qConnect()->query($sql); } /** * * @return type */ function qLastId() { return qConnect()->insert_id; }
Partager