Insertion dans mysql

Fermé
shawarma - 13 sept. 2014 à 11:13
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 15 sept. 2014 à 12:15
Je m'entraîne a insérer dans données de formulaires dans une base de donnée cependant je ni arrive pas, je ne trouve pas l'erreur que j'ai fait dans le code suivant:





<!DOCTYPE html>
<html>
<head>
<meta charset "utf-8" />
<link rel="stylesheet" href="test.css" />
<title>choix</title>

</head>
<body>

<form method="post" action="test.php">
<p><label for="1">Nouveaux jeux :</label><input type="text" name="Nouveaux jeux" id="1" maxlength=40 placeholder="Ex : Batman arkham asylum" /></p>
<p><label for="2">Support jeux :</label><input type="text" name="Support jeux" id="2" maxlength=8 placeholder="Ex : Xbox 360" size="12" /></p>
<input type="submit" value="Envoyer" />

</body>
-----------------------------------------------------------------------------------------------------------

<?php


try
{
$bdd = new PDO('mysql:host=localhost;dbname=game', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}



$req = $bdd->prepare('INSERT INTO jeux(Nouveaux jeux, Support jeux) VALUES(?, ?)');
$req->execute(array($_POST['Nouveaux jeux'], $_POST['Support jeux']));

header('location: test.html');

?>
A voir également:

5 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
13 sept. 2014 à 20:06
Remontre ton code modifié, vire les espaces de tes noms de champs (Un p'tit _ c'est mieux)
Si possible, fais la même chose pour ta base de donnée.

Les espaces et autres caractères spéciaux sont toujours à éviter pour plus de simplicité.
1
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
Modifié par Nhay le 13/09/2014 à 14:07
Tes noms de colonnes ont des espaces, essaye de les entourer d'apostrophes '' (Celles sous la touche 7 et non celles du 4.)
0
Je n'arrive toujours pas a inséré des données dans la table mysql via le formulaire
0
Utilisateur anonyme
13 sept. 2014 à 20:54
Je ne suis pas trop en faveur des espaces dans tes noms de colonnes. Ainsi, puisque tout tes champs concernent un jeux, tu pourrais uniquement les nommer: nouveaux et support. (ou faire appel aux underscores comme recommande Nhay).

<label for="1">Nouveaux jeux :</label><input type="text" name="nouveaux" id="1" maxlength=40 placeholder="Ex : Batman arkham asylum">
<label for="2">Support jeux :</label><input type="text" name="support" id="2" maxlength=8 placeholder="Ex : Xbox 360" size="12">
<input type="submit" value="Envoyer">


PS: Inutile d'encadrer le label puis l'input de <p>, tu n'as qu'à styliser les labels.
PS: Inutile aussi de fermer tes inputs (/>) à moins que tu sois un adepte du XHTML.

Maintenant, tu devrais mettre toute la requête dans le try et puis noter les erreurs si elles surviennent.

TRY{

$bdd = new PDO('mysql:host=localhost;dbname=game', 'root', '');
$req = $bdd->prepare('INSERT INTO jeux (nouveaux, support) VALUES(?, ?)');
$req->execute(array($_POST['nouveaux'], $_POST['support']));
}
//...
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
15 sept. 2014 à 12:15
En complément, n'oublie pas d'activer les erreurs PDO qui sont masquées par défaut :
$bdd = new PDO('mysql:host=localhost;dbname=game', 'root', '');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 13/09/2014 à 11:29
c'est la variable $_POST que tu cherches ?
https://www.php.net/manual/fr/reserved.variables.post.php

if (!empty($_POST))
{
$req = $bdd->prepare('INSERT INTO jeux(Nouveaux jeux, Support jeux) VALUES("'.$_POST['Nouveaux jeux'].'","'.$_POST['Support jeux'].'" )'); 

}
-2
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
13 sept. 2014 à 13:53
Houps !!!
$req->execute(array('"'.$_POST['Nouveaux jeux'].'"', '"'.$_POST['Support jeux'].'"')); 
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
Modifié par Nhay le 13/09/2014 à 14:08
Pas besoin d'apostrophe dans le tableau, PDO s'en occupe.
C'est sur le nom des colonnes
INSERT INTO jeux('Nouveaux jeux', 'Support jeux') 
que c'est nécessaire.
0
Utilisateur anonyme
13 sept. 2014 à 20:20
Nah, pas du tout nécessaire les «apostrophes» pour les noms de colonnes.
0