Insertion dans mysql

shawarma -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   126
 
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   Statut Membre Dernière intervention   126
 
Tes noms de colonnes ont des espaces, essaye de les entourer d'apostrophes '' (Celles sous la touche 7 et non celles du 4.)
0
shawarma
 
Je n'arrive toujours pas a inséré des données dans la table mysql via le formulaire
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   527
 
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   Statut Membre Dernière intervention   209
 
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   Statut Membre Dernière intervention   209
 
Houps !!!
$req->execute(array('"'.$_POST['Nouveaux jeux'].'"', '"'.$_POST['Support jeux'].'"')); 
0
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
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
 
Nah, pas du tout nécessaire les «apostrophes» pour les noms de colonnes.
0