BOnjour à tous,
J'aimerai votre lumière sur un problème complètement incompréhensible pour moi...
J'ai une simple requête "INSERT INTO" qui fonctionne très bien sur tout les navigateurs SAUF Google Chrome qui me fait 2 entrées dans la base : Une entrée correcte et une seconde avec les mêmes infos et l'ID qui s'est incrémenté de 1 (comme si la page avait été chargée deux fois...).
Alors oui je sais, la requete se passe coté serveur et pourtant c'est le navigateur coté client qui à l'air d'être en cause...
La clé primaire de ma table est en AUTO_INCREMENT.
J'ai simplifié mon code au maximum pour être sur de n'avoir aucun conflit, et tjrs le même soucis...
index.php :
Je ne vous met pas la class Vehicule, elle est correcte.
manager.class.php :
J'ai également trouvé qu'en mettant une valeur en brut à mon champ clé primaire lors de mon insertion, tout rentre dans l'ordre et le doublon ne se crée pas...
EDIT :
Voici les insertions effectuées avec UN seul chargement de la page pour chaque navigateur, on voit bien deux entrées pour Chrome..
Merci d'avance..
Apo.
Modifié par Apoooo (23 Dec 2012 - 15:31)
J'aimerai votre lumière sur un problème complètement incompréhensible pour moi...
J'ai une simple requête "INSERT INTO" qui fonctionne très bien sur tout les navigateurs SAUF Google Chrome qui me fait 2 entrées dans la base : Une entrée correcte et une seconde avec les mêmes infos et l'ID qui s'est incrémenté de 1 (comme si la page avait été chargée deux fois...).
Alors oui je sais, la requete se passe coté serveur et pourtant c'est le navigateur coté client qui à l'air d'être en cause...
La clé primaire de ma table est en AUTO_INCREMENT.
J'ai simplifié mon code au maximum pour être sur de n'avoir aucun conflit, et tjrs le même soucis...
index.php :
<?php
require('includes/manager.class.php');
require('includes/vehicule.class.php');
$db = new PDO('mysql:host=localhost;dbname=hacquart', 'root', 'root');
$manager = new Manager($db);
$vehicule_test = new Vehicule(array('id_vh'=>"","designation"=>"Inserer avec test", "immat"=>"GJ1337GG", "kilometre"=>"23789","categorie"=>"1","commentaire"=>"350cv"));
$manager->addVehicule($vehicule_test);
?>
Je ne vous met pas la class Vehicule, elle est correcte.
manager.class.php :
<?php
class Manager
{
private $_db; // Instance de PDO
public function __construct($db)
{
$this->setDb($db);
}
public function setDb(PDO $db)
{
$this->_db = $db;
}
public function addVehicule(Vehicule $vh){
$q = $this->_db->prepare("INSERT INTO hertz_planning_charleville_vh (id_vh,designation,immat,kilometre,categorie,commentaire) VALUES ('', :designation, :immat, :km, :cat, :comment)");
try {
$q->execute(array(':designation' => $vh->getDesignation(), ':immat' => $vh->getImmat(), ':km' => $vh->getKilometre(), ':cat' => $vh->getCategorie(), ':comment' => $vh->getCommentaire()));
} catch (PDOException $e){
echo $e->getMessage();
}
}
}
?>
J'ai également trouvé qu'en mettant une valeur en brut à mon champ clé primaire lors de mon insertion, tout rentre dans l'ordre et le doublon ne se crée pas...
EDIT :
Voici les insertions effectuées avec UN seul chargement de la page pour chaque navigateur, on voit bien deux entrées pour Chrome..
Merci d'avance..
Apo.
Modifié par Apoooo (23 Dec 2012 - 15:31)