PHP LECTURE MAIS NON ECRITURE DANS LA BDD MYSQL

Résolu
oulaysrl Messages postés 3 Date d'inscription mardi 28 juin 2016 Statut Membre Dernière intervention 29 juin 2016 - Modifié par jordane45 le 29/06/2016 à 01:45
oulaysrl Messages postés 3 Date d'inscription mardi 28 juin 2016 Statut Membre Dernière intervention 29 juin 2016 - 29 juin 2016 à 04:18
Bonjour / Bonsoir à tous ...

Je suis confronté à un souci avec ma base de données car elle me renvoie après l’exécution de ce code que MySQL a retourné un résultat vide (aucune ligne)

Je n'arrive donc pas à renseigner ma base (ECRIRE DANS MES TABLES) . Pourtant j'arrive à afficher les éléments de la base (DONC A LIRE LES ELEMENTS DE LA TABLE).

<?php 

$bdd =new PDO('mysql:host=localhost; 
 dbname=monfutuforum; charset=utf8', 'root', '');


if (isset($_POST['pseudo']) AND isset($_POST['message']) 
       AND !empty($_POST['pseudo'])
       AND !empty($_POST['message'])
               
               
                ) 
{

 

 $insertmsg = $bdd -> prepare('INSERT INTO chat
         VALUES ( ?, ? )') ;

 $insertmsg->execute(array( 'pseudo' => $_POST['pseudo'],
       'description' => $_POST['description'], 
      'categorie' => $_POST['categorie'] ) )   ;



  $requete = $bdd -> prepare('INSERT INTO videos 
   VALUES ( :titre, :description,:categorie)') ;
 
  $requete->execute(array(   ($_POST['pseudo']),
              ($_POST['message']) ) ) ;



 }

?>

<html>
 <head>
  <title>LUCHE</title>
  <meta charset ='utf-8'>
 </head>
 
  
 <body>
  <form method ='POST' action=''>

  <input type ='text' name='pseudo' 
  placeholder='PSEUDO' /><br/><br/>
  <textarea type ='text' name='message' 
  placeholder='MESSAGE' ></textarea>
 </textarea><br/> <br/>
  
  <input type='submit' value='Envoyer'/>

  </form>
 
 </body>

</html>

Certainement le problème viendrait de ma configuration php/mysql ... Mais où exactement ? J'espère pouvoir trouver la solution avec vous.

Il faut dire après l'installation de mysql , apache2, php7 et phpmyadmin , j'ai dû déplacer mon repertoire var/www/html vers /var/www .

J'ai pris tout de même le soin après ceci de reconfigurer ces repertoires /etc/apache2/sites-available/000-default.conf , etc/apache2/apache2.conf en les redirigeant vers /var/www , qui fait office de mon répertoire de projets. Conclusion

1 - je n'arrive pas à écrire dans ma base de données avec le code ci-dessus
2 - quand je suis confronté à une erreur , soit php/mysql me renvoie une page toute blanche ou elle me dit : La page localhost ne fonctionne pas. Impossible de traiter cette demande via localhost à l'heure actuelle. HTTP ERROR 500
Merci pour votre aide et votre disponibilité .


*
      • J'utilise Ubuntu






EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.

2 réponses

jordane45 Messages postés 38238 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 septembre 2024 345
29 juin 2016 à 01:49
Bonjour,

1 - Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code



2 - Active l'affichage des erreurs pdo
Pour ça..modifie le code de connexion
try{
$bdd =new PDO('mysql:host=localhost; 
 dbname=monfutuforum; charset=utf8', 'root', '');
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}


et utilises des blocs TRY / CATCH sur tes requêtes
Comme ceci :
try{
 $requete = $bdd -> prepare('INSERT INTO videos 
   VALUES ( :titre, :description,:categorie)') ;
 
  $requete->execute(array(   ($_POST['pseudo']),
              ($_POST['message']) ) ) ;
}catch(Exception $e){
  echo "Erreur ! ".$e->getMessage();
}



Pour ce qui est de ton erreur .... tu as dans ta requete 3 variables
:titre, :description,:categorie
Alors que dans l'array des datas que tu as dans le execute... tu n'en à mis que deux !
array( ($_POST['pseudo']),
($_POST['message']))

Ah... et puis tu as des parenthèses en trop également....
Sans oublier que les "datas" que tu passes dans ton array ne semblent pas correspondre aux variables de ta requête....

Bref... que d'erreurs...........




0
oulaysrl Messages postés 3 Date d'inscription mardi 28 juin 2016 Statut Membre Dernière intervention 29 juin 2016
29 juin 2016 à 04:18
Merci Jordane45 , cela rejoint ce que j'ai trouvé ...
Merci aussi pour les conseils. je suis nouveau sur ce forum et je cherchais les éléments pour mieux faire mes posts .
0
oulaysrl Messages postés 3 Date d'inscription mardi 28 juin 2016 Statut Membre Dernière intervention 29 juin 2016
29 juin 2016 à 04:15
Merci pour votre compréhension ...
J'ai pu résoudre le problème ...

Pour les ERREURS non affichées , je suis allé dans le repertoire /etc/php/..../apache2 ... J'ai accédé au fichier php.ini . Dans ce dernier j'ai modifié la valeur de displays_errors, j'ai remplacé off par on. Et ca marche ... Les erreurs s'affichent.

Pour L'écriture dans les tables de la BDD , dans le meme fichier php.ini , j'ai activé l'extension php_pdo_mysql.dll et ca marche.

Merci
SUJET RÉSOLU.
0
Rejoignez-nous