Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de reconstitution de base de donnée supprimé

Sujet résolu
    20 décembre 2010 à 17:55:32

    Bonjour à tous,
    Jusqu'à maintenant lorsque j'ai un soucis je faisais de longues recherches sur google. Mais là, je n'en peux plus!
    Tout d'abord je tiens à dire que je suis débutant en PHP et SQL.
    Voici mon soucis: je reprends le site d'une asso, nos prédécesseurs n'ont pas renouvelé l'hébergement donc tous les fichiers ont été supprimé. Heureusement ils étaient sauvegardé ou presque, la base de donnée à été perdu.
    Je doit donc recréer cette BDD à partir du code existant. A première vu ca ne parait pas compliqué, mais pour un débutant comme moi en SQL, ce n'est pas le cas. Mes pages affichent de nombreuses erreurs.

    Voici la première:

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'Système'@'localhost' (using password: NO) in C:\wamp\www\...\index.php on line 27
    


    Je sais bien que ce type d'erreur à déjà un post dans de nombreux forum. D'après ce que j'ai compris, ce serait un problème de connexion à la BDD. Mais plus loin dans m'a page j'arrive tout de même à afficher des infos contenues dans cette BDD.

    Seconde erreur:

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\...\index.php on line 27
    


    Voici le contenu de la ligne 27:

    if (strlen($contenu)>$max_caracteres) {
    

    J'en ai plein d'autre donc je préfère les régler une par une!
    • Partager sur Facebook
    • Partager sur Twitter
      20 décembre 2010 à 21:12:31

      ta premiere erreur veut dire que tu as une erreur de mot de passe.
      la seconde est plus vague et peu survenir dans différents cas par exemple en essayant de te connecter a une base de données distantes.
      il nous faut plus d'infos
      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2010 à 13:05:44

        Voici le code de connexion:

        <?php
        try
        {
        	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
        }
        catch (Exception $e)
        {
                die('Erreur : ' . $e->getMessage());
        }
        ?>
        


        Et voici le code original:

        <?php
        mysql_connect("localhost","root","");
        mysql_select_db("41");
        ?>
        


        Je pense que les erreurs peuvent être du au fait que je n'utilise pas les mêmes logiciels que la personne qui a créé le site. J'ai appris avec le tuto du site du zero, donc j'utilise WampServer.
        Qu'en pensez vous?
        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2010 à 13:31:51

          la bdd s'appelle test ou 41 ? il faudrait choisir
          • Partager sur Facebook
          • Partager sur Twitter
            21 décembre 2010 à 13:47:15

            bonjour,
            avec quelle API travailles-tu? avec PDO ou mysql_ ?
            Parce que certains de tes posts sont avec les fonctions de mysql_ et d'autres avec PDO.

            • Partager sur Facebook
            • Partager sur Twitter
              21 décembre 2010 à 18:00:27

              La base de donnée que j'ai créé est test, 41 est celle de mon prédécesseur, je l'ai bien sur changé lorsque j'ai testé. Sinon, si je comprend bien, le problème peut être du au fait que j'utilise PDO et que tout ce qui a été fait précédemment est du mysql? Dans ce cas qu'est ce que je doit changé, reparamétrer?
              • Partager sur Facebook
              • Partager sur Twitter
                21 décembre 2010 à 20:52:36

                re,
                il semble que l'ancienne application ait été écrite avec l'API mysql_. Et que tu ne connaisses que l'API PDO.
                Ce sont 2 bibliothèques qui permettent de manipuler des BD avec de belles différences au niveau des fonctionnalités.
                Fais attention à ton fournisseur. Accepte-t-il les fonctions PDO?
                Si c'est le cas tu dois "retraduire" tout l'application ... ou appendre l'API mysql_.
                La logique est la même. Celui qui a bien assimiler PDO peut coder en mysql_ et inversement.
                Celui qui a compris ce qu'est une BD et une application BD peut coder avec n'importe quel langage.
                Bon travail!

                • Partager sur Facebook
                • Partager sur Twitter
                  21 décembre 2010 à 21:22:15

                  OK. Je te remercie.
                  Pour l'instant je travaille en local et j'utilise WampServer, donc il n'y a pas de problème pour PDO.
                  Mais si je veux continuer le codage en mysql_, est ce que je peux me faire avec WampServer et y a t'-il une manip à faire pour paramétrer?
                  J'ai déjà essayé de me connecter avec le code suivant:

                  <?php
                  mysql_connect("localhost","root","");
                  mysql_select_db("test");
                  ?>
                  


                  Mais j'obtient le message suivant:

                  getMessage()); }*/ ?>
                  Notice: Undefined variable: bdd in C:\wamp\www\...\index.php on line 15

                  Le code de la ligne 15 est:


                  $reponse = $bdd->query('SELECT * FROM news');
                  


                  Je pense donc qu'actuellement WampServer ne reconnait pas l'API mysql_
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 décembre 2010 à 21:54:24

                    bonjour,
                    WampServer n'a aucun rapport (sauf à regarder le php.ini). L'API mysql_ est toujours activée. La bibliothèque PDO pas nécessairement.
                    Wamp c'est Apache+PHP+MySQL. Wamp, Xampp, EasyPHP, une vraie et professionnelle config on s'en fiche ... pour l'instant!
                    Ton problème c'est PHP.
                    Tu mélanges les fonctions mysql_ et PDO.
                    Il faut que tu revois les bases de la programmation PHP et BD.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 décembre 2010 à 22:37:47

                      C'est vrai que pour l'instant je mélange un peu tout ca!
                      Je te remercie, je me remet au travail pour réviser avant de pouvoir programmer.

                      Mais comme je l'ai dis dans le post précédent, je n'arrive pas non plus à me connecter avec un code qui me semble correct (et qui correspond à mysql).
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 décembre 2010 à 8:19:04

                        Détrompes toi le codes précédent est incorrect si tu utilise mysql_*
                        En effet, si tu regarde les fonctions de la librairie mysql ( http://fr2.php.net/manual/fr/book.mysql.php ) tu verra que pour exécuter une requête, on utilise mysql_query. Avec cette bibliothèque, tu n'a pas de notions de POO, méthode etc donc pas de flèche et autres réjouissance

                        Donc le code adéquat serai le suivant :
                        <?php $reponse = mysql_query("select * from news") or die(mysql_error());
                        


                        J'ai juste ajouter la "sortie d'erreur" (or die(mysql_error()) ) au cas ou ta requête serai fausse
                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 décembre 2010 à 9:45:25

                          Je te remercie, je commence vraiment à y voir plus clair.
                          J'ai juste eu un souci, je n'arrivais plus à me connecter. Le message suivant s'affichait:
                          La connexion a été réinitialisée
                              
                          
                          La connexion avec le serveur a été réinitialisée pendant le chargement de la page.
                          
                          
                              *   Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus
                                    tard ;
                          
                              *   Si vous n'arrivez à naviguer sur aucun site, vérifiez la connexion
                                    au réseau de votre ordinateur ;
                          
                              *   Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy,
                                    assurez-vous que Firefox est autorisé à accéder au Web.


                          Apparemment ce serais du à:
                          mysql_close();
                          

                          Il faut soit l'enlever soit changer la version de wamp?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 décembre 2010 à 9:49:46

                            Oui apparemment c'est un problème avec les dernières versions de Wamp
                            Tu peux retirer ces fonctions : cela ne change rien si tu n'as pas de connexion persistante (la déconnexion se fera automatiquement à la fin de ton script)

                            • Partager sur Facebook
                            • Partager sur Twitter
                              22 décembre 2010 à 10:37:14

                              Je vous remercie. Je peux clore le topic.
                              J'ai déjà reconstitué une bonne partie de ma base de donnée. Encore quelques heures de boulot et le site sera de nouveau opérationnel!
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Problème de reconstitution de base de donnée supprimé

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown