09-01-2008, 08:32 AM
Voici une version plus propre (et donc plus lisible) et qui aide énormément à déboguer :
Code PHP :
<?php
$query = sprintf(
"INSERT
INTO objets (`nom`, `defense`, `attaque`, `prix`, `description`)
VALUES('%s', %d, %d, %d, '%s');",
mysql_real_escape_string($_POST['nom']),
$_POST['defense'],
$_POST['attaque'],
$_POST['prix'],
mysql_real_escape_string($_POST['description'])
);
//echo '<pre>'.$query.'</pre>';
mysql_query($query);
En utilise la fonction sprintf, on peut effectuer des fonctions dans la liste des arguments, par exemple les fonctions de sécurisation mysql_real_escape_string()). Cela évite de le faire ailleurs dans le script.
En fait, elle transformera dans l'ordre les %s et %d par les arguments donnés (dans l'ordre aussi) : là où on met '%s', le script attend une chaîne de caractères, et là où on met %d, le script attend un nombre à virgule flottante (et par extension, un entier).
J'ai aussi prix pris la liberté de corriger defence (qui n'est pas français) par defense (qui l'est, quand on met l'accent ).
J'ai aussi enlevé l'insertion vide (prévue initialement pour l'identifiant unique, je suppose) qui n'est pas utile puisque les champs auto-incrémentés se remplissent automatiquement (grâce au système de valeur par défaut).
Sephi-Chan