Erreur SQLSTATE[HY000]

Répondre
jackbocar
le 14/07/2011 à 17:49
jackbocar
Bonjour,

J'ai une erreur et je ne sais pas ce qu'elle veut dire :
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'id' at row 1

Hier, j'ai utilisé mon formulaire pour enregistrer plusieurs dizaines de champs, et cela fonctionnait parfaitement bien.

Quelqu'un peut-il me dire ce qu'il se passe.

Merci

Jack
LA GLOBULE
le 15/07/2011 à 11:27
LA GLOBULE
Ben a priori, tu essayes de passer un truc qui n'est pas un integer dans ta requete SQL, alors que le type du champs id semble l'imposer.
jackbocar
le 15/07/2011 à 15:12
jackbocar
Bonjour,
voici la structure de ma table :
--
-- Structure de la table `chartes_bullaire`
--

DROP TABLE IF EXISTS `chartes_bullaire`;
CREATE TABLE IF NOT EXISTS `chartes_bullaire` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`numero` nchar(10),
`date` nvarchar(100),
`sources` nvarchar(150),
`nom` nvarchar(100),
`ville` nvarchar(100),
`dep` nvarchar(100),
`type` nvarchar(150),
`news` longtext,
`visible` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Je ne comprends toujours pas.

J'ai vu sur quelques site que ce serait-être mon programme Mysql qui ne serait plus à jour ?

Ou alors une mise à jour pas très bien réussi ?

Merci de ta réponse.

Jack
jackbocar
le 15/07/2011 à 18:49
jackbocar
Bonjour

Je ne comprends toujours pas.
Ce code fonctionne très bien sur mon système Linux Ubuntu et plus sur mon système Windows que j'ai paramètre moi-même.

Je pense vraiment de plus en plus qu'il y a une incompatibilité entre Mysql et php ou une autre que je ne peux définir.


Mon formulaire, est un simple test :
<form name="formulaire" method="post" action="add_chartes.php?go=ok">
Numéro : <input type="text" id="numero" name="numero" size="80" maxlength="150" /><br />
Date : <input type="text" id="date" name="date" size="80" maxlength="150" /><br />
Sources : <input type="text" id="sources" name="sources" size="80" maxlength="150"/><br />
Nom : <input type="text" id="nom" name="nom" size="80" maxlength="150" /><br />
Département : <input type="text" id="dep" name="dep" size="80" maxlength="150" /><br />
Ville : <input type="text" id="ville" name="ville" size="80" maxlength="150" /><br />
Pays : <input type="text" id="type" name="type" size="80" maxlength="150" /><br />
News : <textarea id="news" name="news" cols="60" rows="10"></textarea><br />
<input type="submit" value="Save" />
</form>


<?php
$hostname = 'localhost';
$username = 'usename';
$password = 'password';
$dbname = 'my_base';
include ('functions_caracteres.php');
try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

if (isset($_GET['go']) && $_GET['go'] == 'ok') {
if (!empty($_POST['numero']) && !empty($_POST['date']) && !empty($_POST['sources']) && !empty($_POST['nom']) && !empty($_POST['ville']) && !empty($_POST['dep']) && !empty($_POST['type']) && !empty($_POST['news'])) {

$sql = 'INSERT INTO chartes_bullaire VALUES("", "'.addslashes($_POST['numero']).'", "'.addslashes(caracteres($_POST['date'])).'", "'.addslashes(caracteres($_POST['sources'])).'", "'.addslashes(caracteres($_POST['nom'])).'", "'.addslashes(caracteres($_POST['ville'])).'", "'.addslashes(caracteres($_POST['dep'])).'", "'.addslashes($_POST['type']).'", "'.addslashes(caracteres($_POST['news'])).'", "0")';
$dbh->exec($sql);
header('Location: liste_modif.php');
exit();
}
else {
$message = '<span class="R">Au moins un des champs obligatoires est vide</span>.';
}
}
if (isset($_POST['numero'])) $_POST['numero'] = $_POST['numero'];
if (isset($_POST['date'])) $_POST['date'] = $_POST['date'];
if (isset($_POST['sources'])) $_POST['sources'] = $_POST['sources'];
if (isset($_POST['nom'])) $_POST['nom'] = $_POST['nom'];
if (isset($_POST['ville'])) $_POST['ville'] = $_POST['ville'];
if (isset($_POST['dep'])) $_POST['dep'] = $_POST['dep'];
if (isset($_POST['type'])) $_POST['type'] = $_POST['type'];
if (isset($_POST['news'])) $_POST['news'] = $_POST['news'];
}
catch(PDOException $e)
{
echo $sql . '<br />' . $e->getMessage();
}
?>

<?php
if (isset($message)) {
echo '<br /><span class="R">'.$message.'</span>';
}
?>
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours