Mysqli查询没有返回任何信息?

时间:2017-03-15 20:36:22

标签: php mysql mysqli

我试图找到下一个日期。出于任何原因,以下代码不会返回任何信息。我有1个格式如此的条目:2017-03-18 12:37:00 ....我做错了什么?

<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'user');
define('DB_PASSWORD', 'pass');
define('DB_DATABASE', 'db');
$link = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
$query = "SELECT * FROM group WHERE date_time >= NOW() order by date_time LIMIT 1";
$next = mysqli_query($link, $query);
echo $next;
?>

2 个答案:

答案 0 :(得分:1)

您需要调用fetch函数来从查询中获取数据。你还应该检查它是否找到了什么;如果查询没有匹配任何行,fetch函数将返回null而不是数组。

$query = "SELECT * FROM `group` WHERE date_time >= NOW() ORDER BY date_time LIMIT 1";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_assoc($result);
if ($row) {
    $date_time = $row['date_time'];
    echo "Next date is " . $date_time;
} else {
    echo "No time after now in the table.";
}

答案 1 :(得分:0)

使用您的代码返回查询指针。您缺少一行来获取条目。

https://secure.php.net/manual/de/mysqli-result.fetch-assoc.php

以下是如何实现这一目标的一个很好的例子。

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    $result->free();
}