2009-03-15 3 views
1

J'essaie d'apprendre PHP5 et j'ai quelques problèmes avec elle. Je travaille avec des déclarations préparées et essaie d'exécuter le code suivant:

<?php 
require_once 'includes/config.php'; 

$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
die('There was a problem connecting to the database.'); 

$query = "SELECT * FROM user_table"; 

    if($stmt = $conn->prepare($query)) { 
     $stmt->execute(); 

     while ($row = $stmt->fetch()) { 
      print_r ($row); 
     } 

    } 

?> 

J'ai 2 lignes, il doit retourner contenant chacun un identifiant, login_name, login_password et login_level.

Lorsque l'instruction exécute imprime uniquement les éléments suivants:

Toute aide serait grandement apprécié.

Répondre

6

La méthode fetch() renvoie TRUE, FALSE ou NULL selon qu'elle a réussi à extraire les données. Il ne renvoie pas les données dans un tableau. Au lieu de cela, il place les résultats dans des variables liées par la méthode bind_result().

1

Il renvoie 1 car 1 est TRUE en PHP.

Ce que vous devez faire est de lier une variable avec la méthode [bind_result][1] puis faire:

while ($stmt->fetch()) { 
    printf ("%s\n", $variable); 
} 

Un bon exemple est le bind result documentation page.

1

Pour être en mesure d'obtenir que cette façon, vous devez d'abord lier les variables de résultat comme ceci:

$stmt->execute(); 

// bind the result variables in order 
$stmt->bind_result($id, $login_name, $login_password, $login_level); 

// then get results 
while ($stmt->fetch()) { 
    var_dump($id, $login_name, $login_password, $login_level); 
} 
Questions connexes