Saut d'ID

Répondre
jackbocar
le 24/08/2008 à 18:44
jackbocar
Bonjour

Un problème que je n'avais jamais rencontré :

Lorsque j'envoie un enregistrement dans ma table, j'ai un saut sur les ID.
Je m'explique, si mon incrémentation est à 30, j'envoie un enregistrement qui doit avoir ID 31, j'ai bien cette ID, mais elle est vide de titre et de texte, seule la date apparait, par contre l'ID 32 elle est correctement enregistrée.

Si j'enlève les protections : mysql_escape_string() tout fonctionne bien ?

Mon code :

<?php
$hostname = 'localhost';
$username = 'jackbocar';
$password = 'XXXXXXXXX';
$dbname = 'XWXXXXXX';

try {
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}

if (isset($_POST['titre']) && isset($_POST['news'])) {

$sql = 'INSERT INTO news (titre, news) VALUES (:titre, :news)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':titre', mysql_escape_string($_POST['titre']));
$stmt->bindParam(':news', mysql_escape_string($_POST['news']));
$stmt->execute();
echo 'News Enregistrée.';
}

?>



Ma table :

DROP TABLE IF EXISTS `news`;
CREATE TABLE `news` (
`id` int(11) unsigned NOT NULL auto_increment,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`titre` varchar(255) NOT NULL,
`news` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=37 ;



Merci de votre aide

Jack Bocar
jackbocar
le 25/08/2008 à 07:17
jackbocar
Bonjour,

Je crois avoir fait une erreur de protection :

Pour MYSQL et PHP :
mysql_escape_string

Pour Mysql et PDO :
mysql_real_escape_string

Jack Bocar
LupusMic
le 26/08/2008 à 03:12
LupusMic
Je penses que PDO échappe de lui-même les paramètres. Regarde dans la documentation.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
jackbocar
le 09/09/2008 à 18:53
jackbocar
Bonjour,

Tu dois avoir raison, je n'ai rien vu sur mes ouvrages ou sur le Web qui disent de protéger les champs.

Merci

Jack Bocar
Répondre

Ecrire un message

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