IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

conflit set_charset et insert_id


Sujet :

Administration MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut conflit set_charset et insert_id
    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.

    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";
    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
    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;
    }
    Y-aurait-il un conflit ou quelque chose que je fais mal ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 135
    Points : 69
    Points
    69
    Par défaut
    voici la structure de ma table, j'ai bien un autoincrement :

    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
     
    CREATE TABLE IF NOT EXISTS `utilisateurs` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `is_admin` tinyint(1) NOT NULL,
      `id_structure_associe` int(11) NOT NULL,
      `id_entite` int(11) NOT NULL DEFAULT '0',
      `id_fonction` int(11) NOT NULL,
      `login` varchar(32) NOT NULL DEFAULT '',
      `mdp` varchar(32) NOT NULL DEFAULT '',
      `id_civilite` int(11) NOT NULL DEFAULT '0',
      `nom` varchar(150) NOT NULL,
      `prenom` varchar(150) NOT NULL,
      `adresse` varchar(255) NOT NULL,
      `adresse2` varchar(255) NOT NULL,
      `cp` varchar(5) NOT NULL DEFAULT '',
      `ville` varchar(255) NOT NULL DEFAULT '',
      `tel` varchar(20) NOT NULL DEFAULT '',
      `tel2` varchar(20) NOT NULL,
      `portable` varchar(20) NOT NULL DEFAULT '',
      `tel_comment` varchar(255) NOT NULL,
      `tel2_comment` varchar(255) NOT NULL,
      `portable_comment` varchar(255) NOT NULL,
      `fax` varchar(20) NOT NULL DEFAULT '',
      `email` varchar(255) NOT NULL DEFAULT '',
      `commentaire` text NOT NULL,
      `module_facturation` tinyint(4) NOT NULL DEFAULT '0',
      `module_contacts` tinyint(4) NOT NULL DEFAULT '0',
      `module_parametrage` tinyint(4) NOT NULL DEFAULT '0',
      `module_projets` tinyint(4) NOT NULL DEFAULT '0',
      `module_importation` tinyint(1) NOT NULL,
      `module_utilisateur` tinyint(1) NOT NULL,
      `module_fiche_organisme` tinyint(1) NOT NULL,
      `date_ajout` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `ajoute_par` int(11) NOT NULL DEFAULT '0',
      `date_modif` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `modifie_par` int(11) NOT NULL DEFAULT '0',
      `date_archivage` date NOT NULL DEFAULT '0000-00-00',
      `motif_archivage` mediumint(9) NOT NULL DEFAULT '0',
      `archive_par` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=33 ;

Discussions similaires

  1. conflit oracle sql server ?
    Par skaii dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 10/02/2005, 18h28
  2. conflit entre couleurs
    Par khayyam90 dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/07/2004, 18h00
  3. Générer règles de conflits pour réplication
    Par dupin40 dans le forum Administration
    Réponses: 3
    Dernier message: 01/09/2003, 15h31
  4. [horloge] conflit caractère / timer
    Par JeanJean dans le forum C
    Réponses: 10
    Dernier message: 09/05/2003, 23h47
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo