Page 1 sur 1

Erreur SQL

Posté : 07 oct. 2011, 20:11
par viracle
Bonjour

J'ai une erreur SQL qui me dit :
Erreur : SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 1

Voici la page en question (ca me le fait depuis que j'ai ajouté le champ"titre"
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
        <title>Mon blog</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		
    </head>
        
    <body>
<?php
if(!isset($_POST['rajout']))
{
?>
<form method="post" action="billetducon.php">
<p>
<input type="text" name="titre" id="titre" value="titre"/>
<br/>
<textarea name="rajout" rows="10" cols="45">
Entrez votre texte
</textarea>
<input type="submit" value="valider"/>
<?php
}


else
{
try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=;dbname=', '', '', $pdo_options);
//rajout connexiion
$req=$bdd->prepare('INSERT INTO ducon(titre,contenu,date_creation) VALUES (:titre,:contenu,NOW())');
$req->execute(array('titre'=>$_POST['titre'],'contenu'=>$_POST['rajout']));

$req->closeCursor();

}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
}
?>
</body>
</html>



Voici la table SQL en question
[sql}-- phpMyAdmin SQL Dump
-- version 2.11.8.1deb5+lenny8
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Ven 07 Octobre 2011 à 18:58
-- Version du serveur: 5.0.51
-- Version de PHP: 5.2.6-1+lenny9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `***********`
--

-- --------------------------------------------------------

--
-- Structure de la table `ducon`
--

CREATE TABLE IF NOT EXISTS `ducon` (
`id` int(11) NOT NULL,
`titre` varchar(255) NOT NULL,
`contenu` text NOT NULL,
`date_creation` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `ducon`
--

INSERT INTO `ducon` (`id`, `titre`, `contenu`, `date_creation`) VALUES
(0, '', 'Bey', '2011-10-07 18:34:44');
[/sql}


Comment remedier a ce problème?

Merci d'avance

Re: Erreur SQL

Posté : 07 oct. 2011, 20:21
par moogli
salut,

le message indique de tu viole une contrainte de clef (primaire dans ton cas)
le Duplicate entry '0' for key 1 indique que tu essai d'entrer une deuxième fois une valeur zéro pour un champ unique (une clef primaire est unique).

ceci est du au fait que tu ne gère pas du tout l'increment de la clef primaire (id).

modifie ta table pour ajouter l'option auto_increment à la colonne id et tu n'aura plus de problème.


je te conseil un peu de lecture sur SQL ;) => http://sqlpro.developpez.com

@+