MySQLi не возвращает результаты из базы данных - PullRequest
0 голосов
/ 16 мая 2011

Это мой код:

<?php

include('config.php');

$mysqli = new mysqli($db['host'], $db['user'], $db['pass'], $db['name']);
if ($mysqli->connect_error)
    throw new Exception('Couldn\'t connect to MySQL: ' . $mysqli->connect_error);

// Check for a ID parameter
if(isset($_GET['id']) && !empty($_GET['id']))
{
    $skinId = (int)$_GET['id'];

    // Build a query to get skin info from the database
    $stmt = $mysqli->prepare('SELECT name, description, author, timestamp, url FROM `skins` WHERE id=?');
    $stmt->bind_param('i', $skinId);

    // Execute query
    $stmt->execute();
    $stmt->bind_result($result['name'], $result['desc'], $result['auth'], $result['time'], $result['url']);

    echo $result['name'];
} else {
    // Show a 404 page
    echo "bad";
}

$mysqli->close();

?>

При запуске я не получаю никаких результатов.Я могу убедиться, что $skinId содержит действительный идентификатор скина при попытке, и это не пустая переменная.Когда я выполняю ту же инструкцию на localhost с помощью phpMyAdmin, я получаю верную строку со всей информацией, запрашиваемой в запросе.Когда я делаю print_r($result), я получаю это:

Array
(
    [name] => 
    [desc] => 
    [auth] => 
    [time] => 
    [url] => 
)

Кто-нибудь знает, что происходит?Заранее спасибо.:)

1 Ответ

1 голос
/ 16 мая 2011

вы должны выполнить $ stmt-> fetch () после команды $ stmt-> bind_result, чтобы извлечь данные из базы данных в ваш массив результатов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...