【问题标题】:Get rows from database从数据库中获取行
【发布时间】:2017-11-05 15:11:50
【问题描述】:

我有一个连接,我想从我的数据库中获取一些数据。 我已经插入了一些数据,但现在我想检索它,但我得到了 NULL。

我不知道为什么。

<?php
require "connect.php";      
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM tbltemperature ORDER BY time DESC LIMIT 1";
$result = $conn->query($sql);
var_dump($results);
$t = 0;
while($row = $result->fetch_assoc()) {
     $weather[] = array(
                    $row["time"], 
                    $row["inside_temperature"] 
                );  
    echo $row["time"];
    echo $row["inside_temperature"];
}
$conn->close(); 
?>

【问题讨论】:

  • 您了解$result和$results是不同变量吗?
  • @u_mulder 我们都会犯简单的错误。没有必要对此无礼。 var_dump on $result 无论如何都不会提供任何有用的信息。
  • @MattS 现在查看对答案的评论。有用吗?没有?
  • @chris85 谢谢,完全忘记了。
  • 您是否为此使用了准备好的语句?也许你需要php.net/manual/en/mysqli-stmt.get-result.php(mysqli 的麻烦之一)

标签: php sql database get


【解决方案1】:

检查 var_dump($results); ,看起来应该是 var_dump($result); 否则你应该先检查$result-&gt;num_rows() 以了解是否有可用的行。

【讨论】:

  • object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(6) ["lengths"]=> NULL [" num_rows"]=> int(1) ["type"]=> int(0) }
  • 把SQL语句中的'LIMIT 1'去掉,我觉得你需要通读PHP MYSQL编程教程。
  • LIMIT 1 是一个测试。最后我想要最后 15 行。
【解决方案2】:

首先,您必须检查您在 phpmyadmin 中的查询是否有效。如果工作你应该尝试var_dump($result); 及之后

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<br> time: ". $row["time"]. " - inside_temperature: ". $row["inside_temperature"]."<br>";
    }
} else {
    echo "0 results";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2021-04-01
    • 1970-01-01
    • 2016-06-28
    • 2013-01-12
    相关资源
    最近更新 更多