Pergunta

Eu estou tentando aprender PHP5 e estou tendo alguns problemas com ele. Eu estou trabalhando com instruções preparadas e estou tentando executar o código a seguir:

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

    }

?>

Eu tenho 2 linhas ele deve retornar cada um contendo um id, login_name, login_password e uma login_level.

Quando a instrução é executado ele só imprime o seguinte:

11

Qualquer ajuda seria muito apreciada.

Foi útil?

Solução

O buscar () Método retornos TRUE, FALSE, ou NULL dependendo se ele conseguiu buscar os dados. Ela não retorna os dados em uma matriz. Em vez disso, coloca os resultados em variáveis ??vinculados pelo bind_result () método.

Outras dicas

Ele retorna 1 porque 1 é TRUE no PHP.

O que você deve fazer é vincular uma variável com o método [bind_result][1] e depois fazer:

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

Um grande exemplo é na href="http://is.php.net/manual/en/mysqli-stmt.bind-result.php" rel="nofollow noreferrer"> ligam página de documentação

Para ser capaz de conseguir que desta forma você primeiro precisa vincular as variáveis ??resultado como este:

$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);
}
scroll top