简单准备的声明不起作用

时间:2016-08-17 11:58:42

标签: php mysql oop mysqli

我试图从我的localhost MySQL数据库返回一些数据,遵循示例1 on this page

数据库和表都存在,当我使用PhpMyAdmin运行查询时,我得到了5个成功返回的结果。

我的页面名为 test.php ,每当我访问该页面时,我只能看到“已连接”这个词。

我的代码如下;

// Create connection
$conn = new mysqli('localhost', 'user', 'password', 'database'); 
// Check connection
if ($conn->connect_errno > 0) {
    die('Unable to connect to database [' . $conn->connect_error . ']');
} else {
    echo "connected </br>";
}

/* prepare statement */
if ($stmt = $conn->prepare("SELECT Status FROM hostloadslog LIMIT 5")) {
    $stmt->execute();

    /* bind variables to prepared statement */
    $stmt->bind_result($col1);

    /* fetch values */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1);
    }

    /* close statement */
    $stmt->close();
}

任何帮助或建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

基本上,问题是使用printf

printf("%s %s\n", $col1);

失败,因为您使用了2个占位符,但只传递了一个字符串。将其更改为

echo $col1 . PHP_EOL;
//or
printf("%s\n", $col1);

要更轻松地调试此类代码,您可以将error_reporting设置为-1(或将ini文件设置为E_STRICT|E_ALL),并将display_errors设置为on