Erreur SQL

viracle
Invité n'ayant pas de compte PHPfrance

07 oct. 2011, 20:11

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 oct. 2011, 20:21

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

@+
Il en faut peu pour être heureux ......