Bonjour,
Je m'entraine sur un petit projet de site web pour améliorer mon niveau php/mysql et j'ai rencontré un petit probleme, je n'arrive pas à enregistrer des donnees dans ma base de donnees.
Voici le bout de code où je pense qu'il y a erreur: http://pastebin.com/1uuDStTf
Merci
Salut,
dans ton INSERT INTO (à la ligne 11 de ton pastebin), tu spécifies comme nom de colonne 'id' et 'prenom' alors que dans tes values tu ne leur donne pas de valeur.
En gros, tu ne donnes pas le même nombre de colonne dans ta parenthèse de gauche que dans ta parenthèse de droite, donc c'est le bordel pour MySql qui ne comprend rien à ta requête
Ta requête devrait ressembler à ceci:
mysql_query("INSERT INTO allannonces (service, ville, prenom, jours, telephone, email, annonce) VALUES ('$service', '$ville', '$prenom','$jours', '$telephone', '$email','$annonce')");
Petits trucs:
Pas besoin de spécifier l'id si ta colonne est en auto-increment
isset() accepte plusieurs variables ( https://www.jeuxvideo.com/forums/1-30-7921730-1-0-1-0-php-isset-accepte-plusieurs-variables.htm )
Utilise dés a présent PDO à la place des fonctions mysql qui sont obsolètes
Jai modifié cette requète mais ça n'enregistre toujours pas
Peut etre que cest ici :
mysql_connect("localhost", "root", "monmdp");
mysql_select_db("nom_de_ma_base_de_donnees");
Je dois le remplacer par ca?:
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
$dbh = new PDO($dsn, $username, $password, $options);
Peut etre que le html est aussi source d'erreur: http://pastebin.com/ZCPxfsdP
PDO ça s'utilise de A à Z, ça se ne mixe pas avec les mysql(i)_
Donc faut que tu fasses TOUT façon PDO
-> La connexion
-> La requête et l'execution
Et dans mon cas, quelles requetes faut il que j'utilise?
J'ai essayé ça: http://pastebin.com/iTdAsHCt
Mais ca ne marche pas... Quelqu'un sait où est l'erreur ou comment je peux faire pour enregistrer tout ca dans ma database?
Merci d'avance
Teste avec des "or die"
Genre :
mysql_connect($serveur,$login,$mdp) or die ("serveur de base de données injoignable");
mysql_query($sql) or die(mysql_error($sql)).
Ça devrait t'aider à situer l'erreur.
Merci je vais essayer
Pourquoi faire un mysql connect quand tu as Pdo qui existe et qui est bien mieux sécurisé ?
http://fr.openclassrooms.com/informatique/cours/pdo-interface-d-acces-aux-bdd
Voila mon nouveau code : http://pastebin.com/mkUg5CSr
+ http://pastebin.com/yw1wmerP
Mais il ne marche toujours pas
Je ne voie pas l'erreur.
Tu as un id qui s'auto incrémente ?
Rajoute allannonces(id,ville, prenom, telephone, email, annonce) VALUES(:id, :ville, :prenom, :telephone, :email, :annonce)'
$req->execute(array('id' => '', 'ville' => $_POST['ville'],
'prenom' => $_POST['prenom'...)
T'es pas obligé de mettre les : dans le array
Merci pour le conseil
Mais en fait c'est juste avec wamp en local que ça ne marche pas J'ai souscrit à une offre d'hébergement gratuit et les données sont insérées dans la bdd.