Probleme de connexion au bdd

Fermé
judd - 4 juin 2018 à 16:04
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 20 juin 2018 à 16:49
Bonjour, j'apprends le php mais j'ai un probleme avec mes scripts. je n'arrive pas a inserer des donnees dans ma base. ni a faire des requetes sql car les fleches ne marchent pas sur mon editeur de text. j'utilise subllime text3. quand je regarde les tutos les fleches devait etre rose mais elles restent normal
aidez moi sil vous plait




6 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 juin 2018 à 16:47
Bonjour,

Ton souci se trouve sur ton éditeur ou dans ton code ????
Si éditeur... il faut aller voir le forum LOGICIEL.

Si c'est un problème de code... au pire tu peux utiliser autre chose que sublime text. Notepad++ fera l'affaire ou sinon NetBeans.
Car la "couleur" des flêches n'a pas d'importance.

Par contre, sans nous montrer ton code.... impossible de t'aider.

NB: Si tu codes la connexion en PDO, je t'invite fortement à lire et à appliquer ceci:
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

Et concernant l'écriture de ton code, quelques conseils à suivre : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code


Pour finir... pour poster ton code sur le forum, merci de le faire en utilisant les BALISES DE CODE.
Explications disponibles ici: https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code



1
Pour info, car je vois que ça te perturbe, la dernière mise à jour de Sublime Text ne tient plus compte de la coloration syntaxique pour ce caractère
->
(et probablement d'autres), de couleur fushia/rouge auparavant et maintenant blanc.

Ensuite, je partage l'avis de Jordane45, un peu de code aiderait beaucoup à dépanner.

Cdt.
1
salut Mike je ne me suis pas bien explique je vais vous donner de plus ample infos afin que vous puissez m'aider:

je suis nouveau en php, je suis des tutos pour pouvoir m'ameliorer mais je n'arrive pas a inserer des donnees dans ma base de donnee et toutes mes codes Sql ne marche pas. pour voir si les erreurs viennent de moi j'ai regarde des tutos sur youtube et copier les codes exactement comme les youtubeurs malgre cela il ya les memes erreurs qui persistent est ce que je devrais changer de logiciel?

j'utilise sublimetext3, opera mini et wampserver version 2.5( c'est une ancienne version je le sais mais cette version est la seule qui soit compatible avec mon windows7)

je vous rapelle que je suis un debutant donc soyez indulgent
merci
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > judd
12 juin 2018 à 17:50

je suis nouveau en php, je suis des tutos pour pouvoir m'ameliorer mais je n'arrive pas a inserer des donnees dans ma base de donnee et toutes mes codes Sql ne marche pas

Commence par suivre les recommandations qui se trouvent dans les liens que je t'ai donné.
Puis reviens nous voir avec tes codes afin que l'on regarde ce qui n'est pas bon.
Pense également à nous indiquer, quand il y en a, les messages d'erreur COMPLETS et les lignes de codes vers lesquels ils renvoient.
0
je vous enverrz les codes plus tard
0
salut, j'ai essaye les suggestions de Jordane45 mais les choses ne s'ameliore pas. voici un peu de code:

   
<?php
Bdd= new PDO('mysql: host=localhost;dbname=test' , ' root', '');
$username=$_POST['username'];
$email= $_POST['email'];
if($username AND$email){
$req= $bdd-> prepare("INSERT INTO jude(' ', username, email) VALUE (' ', $username, $email)");

$req-> execute(array(
'username'=> $username,
'email'=> $email));
}else{
echo ' veuillez remplir tous les champs'; 
?>

<from Action'' method = "post">
<table>
<td><input type= " text " name= "username " id= "username"> </td>
</br>
<td><input type= "mail" name= " mail"/> </td></br>
<td> <input type= " submit" name= "valider" >
</table> 


EDIT: Correction des balises de code
1
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
16 juin 2018 à 14:33
1 - Tu n'as pas du bien lire tout le contenu des liens que je t'ai donné !
2 - Tu n'as pas du te relire..... vu le nombre d'erreurs que tu as dans ton code.
- un $ manquant devant le mot Bdd (première ligne de code )
- Le "AND" qui est collé à la variable $email
- Les try/catch manquants autour de l'exécution de ta requête
- L' activation des erreurs PHP au début de ton script
- L'activation des erreurs PDO dans la connexion à ta bdd
- L'accolade fermante manquante à la fin de ton else

Commence par corriger tout ça... et montre nous le code corrigé.

N'oublie pas d'indiquer les éventuels messages d'erreur que tu peux rencontrer..... en général... ça indique où se trouve l'erreur !
0
Salut Jordane45 récemment j’ai dû me tromper car j’ai copié le code par cœur n’étant pas un pro et sans éditeur de texte je n’ai pas pu voir mes erreurs. Je suis désolé voici le code.
  <?php
  try
  {
  $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
  
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  }
  catch(Exception $e)
  {
  die('Erreur : '.$e->getMessage());
  }

//mes variables
  $username= $_POST['username'];
  $email= $_POST['mail'];
  
  //condition
   if($username AND $email){
   $req= $bdd->prepare("INSERT INTO jude('',username, email)VALUES(' ', $username, $email)");
   $req->execute(array(
     'username'=>$username,
     'email'=>$email));
   }else{
    echo'veuillez remplir tous les champs';
    }
 ?>

<form action="" method="POST">
 <div align="center"> Formulaire de test </div> </br> </br>
 <table>
  <tr>
  <td>Nom d'utilisateur</td>
  <td><input type="text" name="username" id="username" placeholder="Username" /></td>
  </tr>
  </br></br>
  <tr>
  <td>Email</td>
  <td><input type="mail" name="mail" id="mail" placeholder="mail" /></td>
  </tr>
  </br></br>
  <td>Valider</td>
  <td><input type="submit" name="Enregister" id=" valider" placeholder=" Valider"/></td>
 </table>


EDIT : Correction des balises de code
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je pense que je me suis mal expliqué c’est pour cela que vous n’aviez pas compris mon problème, Mes insertions ne fonctionnent pas à partir d’un formulaire. Avec ce code par exemple il n’Ya pas de message d’erreur proprement dit, toutefois quand j’aille actualiser ma base de donnée il n ya rien dedans… alors que si je passe directement par phpMyAdmin je peux insérer ce que je veux. Je ne sais pas où est exactement le problème et Ça fait plus de 2 mois que je lutte avec. J’ai réinstallé mon WampServer et changer d’éditeur de texte, copier/coller des codes ça n’a pas marché. Je vous rappelle que je suis nouveau en programmation j’aimerais devenir un Pro de PHP. Encore une fois Je suis désolé pour les erreurs et les éventuelles utilisations erronées des termes. S’il ya d’autres documents sur le PHP que vous recommanderiez a un débutant j’en serai ravi de les connaitre. Merci pour votre aide.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
20 juin 2018 à 16:49
J'ai parfaitement compris ce que tu avais indiqué....
Mais visiblement tu n'a pas su lire le contenu des liens que je t'ai donné....

Bref.
essaye ça
<?php 
/*
* Affichage des erreurs PHP dans la page
*/
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

/*
* Connexion à la bdd
*/
try 
{ 
  $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); 
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
} catch(Exception $e) { 
  die('Erreur : '.$e->getMessage()); 
} 


/**
* Recuperation PROPRE des variables AVANT de les utiliser
*/
$username = !empty($_POST['username']) ? $_POST['username']: NULL; 
$email = !empty($_POST['mail']) ? $_POST['mail'] : NULL; 


//condition 
if($username AND $email){ 
  $sql = "INSERT INTO jude(username, email)VALUES(:username, :email)";
  $datas = array( ':username'=>$username,  ':email'=>$email);
  try{
    $req= $bdd->prepare($sql); 
    $res = $req->execute($datas); 
  }catch(Exception $e){
     echo "Erreur dans la requete : ".$sql . "<br>".$e->getMessage();
  }
}else{ 
  echo'veuillez remplir tous les champs'; 
} 
?> 


<div align="center"> Formulaire de test </div> </br> </br> 
  <form action="" method="POST"> 
    <table> 
      <tr> 
        <td>Nom d'utilisateur</td> 
        <td><input type="text" name="username" id="username" placeholder="Username" /></td> 
      </tr> 
      <tr> 
        <td>Email</td> 
        <td><input type="mail" name="mail" id="mail" placeholder="mail" /></td> 
      </tr> 
      <tr>
        <td>Valider</td> 
        <td><input type="submit" name="Enregister" id=" valider" placeholder=" Valider"/></td> 
      </tr>
    </table>
  </form>
</div>

0