MySQLi没有返回数据库的结果

时间:2011-05-16 17:02:51

标签: php sql select mysqli

这是我的代码:

<?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是否包含有效的皮肤ID,并且它不是空变量。当我使用phpMyAdmin在localhost上运行相同的语句时,我得到了正确的行,其中包含查询中请求的所有信息。当我print_r($result)时,我得到了这个:

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

任何人都知道发生了什么事吗?提前致谢。 :)

1 个答案:

答案 0 :(得分:1)

你应该在$ stmt-&gt; bind_result命令之后执行$ stmt-&gt; fetch(),以便将数据从数据库提取到结果数组