2009-09-30 5 views
4

J'essaie de vérifier si une chaîne correspond à l'un des champs d'une certaine colonne dans une table. Pour cela, j'ai besoin de récupérer toutes les lignes de l'objet résultat. J'utilise php 5.2.x donc je ne peux pas utiliser la méthode fetch_row_all; à la place, j'essaye de construire un nouveau tableau qui contiendra toutes les lignes.obtenir tableau de lignes avec résultat mysqli

Voici mon code:

$sql = new mysqli($config['host'],$config['user'],$config['pass'],$config['db_name']); 
     if (mysqli_connect_errno()) 
     { 
      printf("Connect failed: %s\n", mysqli_connect_error()); 
      exit(); 
     } 
     $query = "SELECT domain FROM services"; 
     $result = $sql->query($query);   
     while($row = $result->fetch_row()); 
     { 
      $rows[]=$row; 
     } 
     $result->close(); 
     $sql->close(); 
     return $rows; 

$rows est censé être le nouveau tableau qui contient toutes les lignes, mais je reçois un tableau vide.

Des idées pour lesquelles cela se passe?

Répondre

19

Vous avez eu un léger problème de syntaxe, à savoir un point-virgule errant.

while($row = $result->fetch_row()); 

Notez le point-virgule à la fin? Cela signifie que le suivi du bloc n'a pas été exécuté en boucle. Débarrassez-vous de cela et cela devrait fonctionner.

En outre, vous pouvez vérifier que la requête fonctionne réellement:

$sql = new mysqli($config['host'], $config['user'], $config['pass'], $config['db_name']); 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit; 
} 
$query = "SELECT domain FROM services"; 
$result = $sql->query($query);  
if (!$result) { 
    printf("Query failed: %s\n", $mysqli->error); 
    exit; 
}  
while($row = $result->fetch_row()) { 
    $rows[]=$row; 
} 
$result->close(); 
$sql->close(); 
return $rows; 
+1

oh ... comment je ne devrais pas embarrassant travail qu'à la fin (il est 02h30 ici :) MERCI Cletus cela a fonctionné en dehors :) –

Questions connexes