2009-03-15 16 views
1

Ich versuche PHP5 zu lernen und habe ein paar Probleme damit. Ich arbeite mit vorbereiteten Anweisungen und ich versuche, den folgenden Code auszuführen:

<?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); 
     } 

    } 

?> 

Ich habe 2 Zeilen, die es jeweils eine ID, login_name, login_password und login_level zurückkehren.

Wenn die Anweisung läuft es druckt nur die folgenden:

Jede Hilfe wäre sehr geschätzt.

Antwort

6

Die Methode fetch() gibt TRUE, FALSE oder NULL zurück, je nachdem, ob das Abrufen der Daten erfolgreich war. Es gibt die Daten in einem Array nicht zurück. Stattdessen werden die Ergebnisse in Variablen platziert, die an die Methode bind_result() gebunden sind.

1

Es gibt 1 zurück, weil 1 in PHP WAHR ist.

Was Sie tun sollen binden, wird eine Variable mit der [bind_result][1] Methode und dann tun:

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

Ein gutes Beispiel ist auf den bind result documentation page.

1

der Lage sein, dass diese Art und Weise zu erhalten, müssen Sie zuerst Binden Sie die Ergebnisvariablen wie folgt ein:

$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); 
} 
Verwandte Themen