Ajouter un ligne dans une table MySQL en PHP
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, je cherche à créer un formulaire qui permettrait de créer une ligne en PHP, e formulaire pourrait juste spécifier le nom de la ligne. Actuellement mon code d'insertion ressemble à çà :
Je ne trouve pas l'erreur mais je peux vous donner l'erreur :
if(isset($_POST['name'])){
$bdd->execute('codeschool_fr','INSERT INTO categories (id, name) VALUES (NULL, \'$name\')');
} sachant que $bdd est déclarer plus haut et ne pose pas de problème car je l'utilise dans une autre partie du site. Mon "<form>" est coder ainsi : <form method="post" action="index.php"> <p> <input type="text" name="name" placeholder="Nom du sujet..." required/><br> <input id="submit" type="submit" value="Ajouter le sujet" /> </p> </form>
Je ne trouve pas l'erreur mais je peux vous donner l'erreur :
Fatal error: Uncaught Error: Call to undefined method PDO::execute() in /Tchekda/admin/index.php:18 Stack trace: #0 {main} thrown in /Tchekda/admin/index.php on line 18
A voir également:
- Ajouter un ligne dans une table MySQL en PHP
- Table ascii - Guide
- Partager photos en ligne - Guide
- Table des matières word - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
1 réponse
Bonjour,
pdo::execute... sert à exécuter des requêtes préparées... la syntaxe que tu as essayer d'utiliser ne fonctionne pas à ma connaissance...
Essaye comme ceci :
Bien entendu.. pour que ça fonctionne... tu as inclus le fichier de connexion à ta bdd ?!
pdo::execute... sert à exécuter des requêtes préparées... la syntaxe que tu as essayer d'utiliser ne fonctionne pas à ma connaissance...
Essaye comme ceci :
//récupération "propre" des variables AVANT de les utiliser:
$name = isset($_POST['name']) ? $_POST['name'] : NULL;
if($name){
// on prépare la requete et les variables
$sql = "INSERT INTO categories ( name) VALUES ( :name)"
$datas = array(":name"=>$name);
//on execute la requete
try{
$prepare = $bdd->prepare($sql);
$bdd->execute($datas);
}catch(Exception $e){
//en cas d'erreur dans la requete
echo 'Erreur ! ' .$e->getMessage();
}
}
Bien entendu.. pour que ça fonctionne... tu as inclus le fichier de connexion à ta bdd ?!
Fatal error: Uncaught Error: Call to undefined method PDO::execute() in /Tchekda/admin/index.php:26 Stack trace: #0 {main} thrown in /Tchekda/admin/index.php on line 26, la ligne 26 est la ligne 7 de ton code.PS : tu as oublié de point-virgule ligne 6
J'ai réussi a faire un code mais je n'arrive pas à appliquer une variable :
if(isset($_POST['name'])){ $sujet = $_POST['name']; $bdd->exec('INSERT INTO categories (id, name) VALUES (NULL, \'$sujet\')'); }Car la ligne insérer à pour nom "$sujet" au lieu de sa valeur.Le code c'est celui là :
//récupération "propre" des variables AVANT de les utiliser: $name = isset($_POST['name']) ? $_POST['name'] : NULL; if($name){ // on prépare la requete et les variables $sql = "INSERT INTO categories ( name) VALUES ( :name)"; $datas = array(":name"=>$name); //on execute la requete try{ $prepare = $bdd->prepare($sql); $prepare->execute($datas); //$prepare et non $bdd }catch(Exception $e){ //en cas d'erreur dans la requete echo 'Erreur ! ' .$e->getMessage(); } }