PHP LECTURE MAIS NON ECRITURE DANS LA BDD MYSQL [Résolu]

oulaysrl 3 Messages postés mardi 28 juin 2016Date d'inscription 29 juin 2016 Dernière intervention - 28 juin 2016 à 23:12 - Dernière réponse : oulaysrl 3 Messages postés mardi 28 juin 2016Date d'inscription 29 juin 2016 Dernière intervention
- 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.
Afficher la suite 

3 réponses

Répondre au sujet
jordane45 19322 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 décembre 2017 Dernière intervention - 29 juin 2016 à 01:49
0
Utile
1
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...........




oulaysrl 3 Messages postés mardi 28 juin 2016Date d'inscription 29 juin 2016 Dernière intervention - 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 .
Commenter la réponse de jordane45
oulaysrl 3 Messages postés mardi 28 juin 2016Date d'inscription 29 juin 2016 Dernière intervention - 29 juin 2016 à 04:15
0
Utile
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.
Commenter la réponse de oulaysrl

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.