Insertion dans mysql
shawarma
-
Pitet Messages postés 2845 Statut Membre -
Pitet Messages postés 2845 Statut Membre -
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');
?>
<!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');
?>
5 réponses
-
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é. -
Tes noms de colonnes ont des espaces, essaye de les entourer d'apostrophes '' (Celles sous la touche 7 et non celles du 4.)
-
-
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'])); } //... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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'].'" )'); }