2010-08-10 7 views
0

J'ai essayé ma main à mysqli. En utilisant mysql procédurale, le code affiche les résultats bien.en utilisant mysqli pour récupérer des données

Cependant, après avoir fait le passage à OOP mysqli, j'ai essayé de convertir le code en mysqli, et il dit qu'il n'y a pas de guillemets. Y at-il quelque chose de mal avec le code?

/* the database object */ 
     private $_db; 

     public function __construct($db=NULL) 
     { 
      if(is_object($db)) 
      { 
       $this->_db = $db; 
      } 
      else 
      { 

       $this->_db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
      } 
     } 

     public function displayQuotes() 
     { 
      $sql = "SELECT cQuotes, vAuthor, cArabic, vReference 
          FROM thquotes 
          ORDER BY RAND() 
          LIMIT 1;"; 

        try { 

         $query = $this->_db->prepare($sql); 
         $query->execute(); 
         $query->store_result(); 

         /* bind variables to prepared statement */ 
         $query->bind_result($cQuotes, $vAuthor, $cArabic, $vReference); 


         if(!$query->num_rows==0) 
         { 
         while($row = $query->fetch()) 
         { 
          //echo $this->formatQuotes($row); 
          $formatHTML = new formatHTML(); 
          echo $formatHTML->formatQuotes($row); 
         } 


         } 
         else 
         { 
          echo "There are no Quotes!"; 
         } 
         $query->free_result(); 
         $query->close(); 
        } 
        catch (Exception $ex){ 

         echo "Something went wrong " . $ex; 
        } 

     } 

Répondre

0

Vous ne l'avez pas lier des variables à colonnes RESULTSET

http://www.php.net/manual/en/mysqli-stmt.bind-result.php

+0

i essayé juste avant la liaison vérifier si le nombre d'enregistrements est 0 comme ceci: 'bind_result $ stmt-> (COL1 $, $ col2, $ col3, col4); 'et il affichait toujours 'pas de devis'. C'est la bonne route? ou ai-je oublié quelque chose? – input

+0

Changez if (! $ Query-> num_rows() == 0) 'en if (! $ Query-> num_rows == 0)' C'est une propriété, pas une méthode. – Mchl

+0

l'a fait. ne fonctionne toujours pas. J'ai mis à jour le code avec les changements. Vérifiez s'il vous plaît. – input

Questions connexes