PHP 数组没有返回值

标签 php mysql arrays

我有一个 PHP 文件,应该从 mysql 返回一个数组。问题是数组没有传递。

如果我查询 2 列或更多列,则数组为空。

<?php 
//conection: 
$mysqli = mysqli_connect("localhost","root","","imoveis") or die("Error " . mysqli_error($mysqli)); 


//consultation: 

$query = "SELECT * FROM saomiguel" or die("Error in the consult.." . mysqli_error($mysqli)); 


//execute the query. 

$result = mysqli_query($mysqli, $query);

//display information: 

$response = array();

if (mysqli_num_rows($result) > 0) {
    // looping through all results
    // products node    
    $response["saomiguel"] = array();       

      while ($row = mysqli_fetch_array($result)) {
        // temp user array
        $product = array();     
        $product["id"] = $row["id"];
        $product["second"] = $row["second"];

        // push single product into final response array
        array_push($response["saomiguel"], $product);
    }
    // success
    $response["success"] = 1;
    // echoing JSON response
    echo json_encode($response);

} else {
    // no products found
    $response["success"] = 0;
    $response["message"] = "No products found";

    // echo no users JSON
    echo json_encode($response);  

        // closing db connection
        mysqli_close($mysqli);

}
?>

如果我在 while 循环内设置回显响应,它只返回一行。

注意:

刚刚发现错误!在我的一个专栏中,我有“Imóvel”,´ 给了我一个错误!我将其用作 varchar、大小 75、字符集 latin1。

字符集是否给我带来了问题?

编辑:

通过添加解决问题

$mysqli->set_charset("utf8");

最佳答案

您应该删除此行

//显示信息:

$response = array();

你能试试这个吗?并让我知道它是否有效。

<?php 
//conection: 
$mysqli = mysqli_connect("localhost","root","","imoveis") or die("Error " . mysqli_error($mysqli)); 


//consultation: 

$query = "SELECT * FROM saomiguel" or die("Error in the consult.." . mysqli_error($mysqli)); 


//execute the query. 

$result = mysqli_query($mysqli, $query);


if (mysqli_num_rows($result) > 0) {
    // looping through all results
    // products node    
    $response["saomiguel"] = array();       

      while ($row = mysqli_fetch_array($result)) {
        // temp user array
        $product = array();     
        $product["id"] = $row["id"];
        $product["second"] = $row["second"];

        // push single product into final response array
        array_push($response["saomiguel"], $product);
    }
    // success
    $response["success"] = 1;
    // echoing JSON response
    echo json_encode($response);

} else {
    // no products found
    $response["success"] = 0;
    $response["message"] = "No products found";

    // echo no users JSON
    echo json_encode($response);  

        // closing db connection
        mysqli_close($mysqli);

}
?>

关于PHP 数组没有返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29527531/

相关文章:

php - 当我将 boolean 值 True-False 作为绑定(bind)到 int 字段的参数发送到 PDO 语句时会发生什么?

php - 表格标题未正确对齐

mysql - 有没有办法根据查询中修改的列来联接两个表?

javascript - 如何编写一个函数,通过数组从多个对象创建一个对象

php - 从 PHP 创建 MySQL 用户和数据库

php - yii 中的关系错误

c# - 我将如何获得以特定前缀开头的所有 MySQL 数据库使用的总磁盘空间?

mysqldump 创建的行多于主键的实际范围

c++ - 从文件读取到不同的类对象

c++ - 阵列超出范围MQL5循环