Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mettre base SQL sur serveur

    2 septembre 2010 à 1:21:25

    Bonjour, j'ai créer un site contenant du PHP avec des donnés dans des tables. Sur mon ordinateur,le site et les bases fonctionnent très bien.
    J'ai exporter le site puis la base de donnée sur mon hébergeur.
    J'ai mit les mot de passe et tous se que mon hébergeur ma fournie pour accéder a MySQL sur la page PHP.

    // Connexion à la base de données
    try
    {
    	$bdd = new PDO('mysql:host= xxxxx ;dbname= xxxxx ', ' xxxxx ', ' xxxxx ');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    

    Mais quand je clic sur le lien de ma page qui contiens la table, il m'indique une erreur sur la ligne de connexion.

    Fatal error: Class 'PDO' not found in /home/a2294707/public_html/minichat.php on line 32


    Et
    dbname
    
    veutbien dire database ???

    Pouvez-vous m'aider :)
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      2 septembre 2010 à 5:20:37

      dbname = le nom de ta db

      PDO c'est le nom de ta db ?
      • Partager sur Facebook
      • Partager sur Twitter
        2 septembre 2010 à 8:51:56

        bonjour, peut-être que le fournisseur n'a pas mis en place l'API PDO. Faites un test avec la bibliothèque mysql_ ou mieux avec mysqli_.
        • Partager sur Facebook
        • Partager sur Twitter
          2 septembre 2010 à 9:08:29

          Tu peux me dire comment faire un test sur avec la bibliothèque, je débute :/
          Et il n'y a pas d'autres façon de se connecter à la base ?
          • Partager sur Facebook
          • Partager sur Twitter
            2 septembre 2010 à 9:30:33

            voilà un petit script. Change localhost ... avec tes valeurs. Mets dans le SELECT * FROM ... le nom d'une de tes tables ...
            <?php
            	header("Content-Type: text/html;charset=UTF-8");
            
            	// --- Connexion au serveur MySQL
            	$lien = mysql_connect("localhost","root","") or die("Impossible de se connecter au serveur");
            
            	// --- Sélection de la base mysql
            	mysql_select_db("cours", $lien) or die("Impossible de trouver la bd");
            
            	// --- Exécuter une requête
            	$lsSql = "SELECT * FROM villes";  
            	$curseur = mysql_query($lsSql, $lien) or die("Mauvais SQL");
            
            	// --- Boucle de balayage
            	while ($enr = mysql_fetch_row($curseur))
            	{
            		print("$enr[0] – $enr[1] <br />");
            	}
            
            	// --- Fermeture du curseur
            	mysql_free_result($curseur);
            	// --- La déconnexion 
            	mysql_close($lien);
            ?>
            
            • Partager sur Facebook
            • Partager sur Twitter
              2 septembre 2010 à 10:53:47

              Merci mais je ne comprend pas très bien la fin du code, à quoi sert Boucle de balayage, c'est pour afficher le contenue de la table?

              Pour afficher le contenue, je faisais

              // Récupération des 15 derniers messages
              $reponse = $bdd->query('SELECT pseudo, message, heure, minute FROM minichat ORDER BY ID DESC LIMIT 0, 15');
              
              // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
              while ($donnees = $reponse->fetch())
              {
              	echo '<p>' . htmlspecialchars($donnees['heure']) . ':'. htmlspecialchars($donnees['minute']) . ' | <strong>  ' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
              }
              
              $reponse->closeCursor();
              

              Je test toujours sur le local



              Edit:
              C'est bon j'ai réussi à afficher le contenue de la table mais je trouve que la technique de m@theo est beaucoup plus simple ^^
              J'ai un problème aussi, comment dire, je veux les 15 premières données de la table.
              Merci
              • Partager sur Facebook
              • Partager sur Twitter
                2 septembre 2010 à 13:46:38

                re, oui la méthode PDO est surtout plus "moderne", plus portable, plus puissante. Mais le problème était de savoir si ton fournisseur l'a installée ou pas.
                Pour avoir les 15 premiers ajoute LIMIT 0,15 à la fin du select.
                cf http://dev.mysql.com/doc/refman/5.0/fr/select.html
                C'est un peu aride mais il faut de temps en temps aller voir aux sources.
                Et je te remets celui en mysql_ pour le fun en rétréci. C'est plus long. Mais c'est la vieille techno.
                <?php
                	mysql_connect("localhost","root","") or die("Impossible de se connecter au serveur");
                	mysql_select_db("cours") or die("Impossible de trouver la bd"); 
                	$curseur = mysql_query("SELECT * FROM villes LIMIT 0,10") or die("Mauvais SQL");
                	while ($enr = mysql_fetch_row($curseur))
                	{
                		print("$enr[0] –" . htmlspecialchars($enr[1]) . "<br />");
                	}
                ?>
                
                • Partager sur Facebook
                • Partager sur Twitter
                  2 septembre 2010 à 20:41:07

                  Merci de ton aide :)
                  Une dernière question j'utilise 000webhost.com , pense tu qu'ils utilise PDO ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 septembre 2010 à 14:04:01

                    Autre petit problème, comment envoyer des information avec se système ?
                    Merci
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 septembre 2010 à 17:33:14

                      re,
                      savoir si ton fournisseur accepte PDO ?
                      Tu testes un script en PDO et le même, au niveau des fonctionalités, en mysql_, et tu vois tout de suite le résultat.
                      Il y a aussi
                      <?php
                      	phpinfo();
                      ?>
                      

                      Pour la deuxième question, elle ne m'est pas claire.
                      Tu veux insérer des données dans tes tables de la BD?
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Mettre base SQL sur serveur

                      × 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