Pregunta

Estoy tratando de aprender PHP5 y tengo un par de problemas con él. Estoy trabajando con declaraciones preparadas y estoy tratando de ejecutar el siguiente código:

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

    }

?>

Tengo 2 filas que debería devolver, cada una con un ID, login_name, login_password y login_level.

Cuando se ejecuta la instrucción, solo imprime lo siguiente:

11

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

El método fetch () devuelve TRUE , FALSE o NULL dependiendo de si logró obtener los datos. No devuelve los datos en una matriz. En su lugar, coloca los resultados en variables vinculadas por bind_result () método.

Otros consejos

Devuelve 1 porque 1 es VERDADERO en PHP.

Lo que debe hacer es vincular una variable con el método [bind_result] [1] y luego hacer:

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

Un gran ejemplo está en la página de documentación de resultados enlace.

Para poder hacerlo de esta manera, primero debe vincular las variables de resultado de esta manera:

$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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top