首页 > 解决方案 > 我调用了数据并尝试使用 fetch_assoc 但没有出现

问题描述

我这样做是为了显示数据,但没有出现任何内容,并且在编码中没有显示错误

有没有人可以帮助我

<?php
require 'db_connect.php';
$sql_get = "SELECT * FROM daftarumkm ORDER BY id_daftar DESC";
$query = $con->query($sql_get);
$response_data = null;
while ($data = $query->fetch_assoc()) {
    $response_data[] = $data;
}
if (is_null($response_data)) {
        $status = true;
} else {
    $status = true;
}

这是 db_connect.php

<?php
define('DB_USER', "root"); // db user
define('DB_PASSWORD', ""); // db password (mention your db password here)
define('DB_DATABASE', "data_umkm"); // database name
define('DB_SERVER', "localhost"); // db server

$con = mysqli_connect(DB_SERVER,DB_USER,DB_PASSWORD,DB_DATABASE);

// Check connection
if(mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

?>

标签: phpmysqli

解决方案


您从数据库中获取数据的代码很好,但还有一些其他问题。

1)如果你想检查你是否从变量中的数据库得到结果,$response_data你在这里犯了一个错误

if (is_null($response_data)) {
        $status = true;
} else {
    $status = true;
}

您可能想将其更改为

if (is_null($response_data)) {
        $status = false;
} else {
    $status = true;
}

我应该提一下,有更好的方法可以做到这一点。而不是上面的 4 行,你可以简单地写$status = (is_null($response_data)) ? false : true;

2)此外,而不是所有的行

$response_data = null;
while ($data = $query->fetch_assoc()) {
    $response_data[] = $data;
}
if (is_null($response_data)) {
        $status = true;
} else {
    $status = true;
}

您可以编写以下更高效的代码:

$response_data = $query->fetch_all(MYSQLI_ASSOC);
$status = ($response_data) ? false : true;

3)最后,如果您想查看结果,只需使用该var_dumb()功能即可。

var_dumb($response_data);

推荐阅读