PHP循环中的第一个查询失败

PHP循环中的第一个查询失败,php,mysqli,Php,Mysqli,我正在编写一些PHP代码,以允许对MySQL数据库中的某些字段进行外部只读访问 我有一个表,其中有一个ID与一周中的每一天关联,我需要每天运行一个查询,获取一个序列化的PHP对象,对其进行操作并将其作为JSON返回 我的代码如下: <?php // Connect to DB $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); mysqli_set_charset($link, DB_CHARSET); $da

我正在编写一些PHP代码,以允许对MySQL数据库中的某些字段进行外部只读访问

我有一个表,其中有一个ID与一周中的每一天关联,我需要每天运行一个查询,获取一个序列化的PHP对象,对其进行操作并将其作为JSON返回

我的代码如下:

<?php

// Connect to DB
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
mysqli_set_charset($link, DB_CHARSET);

$dayIds = ["Monday" => 3585,
            "Tuesday" => 3586,
            "Wednesday" => 3587,
            "Thursday" => 3588,
            "Friday" => 3589,
            "Saturday" => 3590,
            "Sunday" => 3591];

$dayData = [];

// Iterate over days
foreach($dayIds as $day => $dayId){
    // Create SQL
    $sql = "select value from table_meta where day_id=".$dayId;
    echo $sql."<br><br>";
    $result = mysqli_query($link, $sql);

    // Get Result
    $new_data = [];
    $row = mysqli_fetch_row($result);
    $data = unserialize($row[0]);

    // Manipulate Data and add it to the new_data array
    //
    // (Hidden for confidentiality reasons)
    //

    $dayData[$key] = $new_data;
    echo json_encode($new_data)."<br><br>";
}

$row=mysqli.*
必须在
$data
之前

$data = unserialize($row[0]);
$row = mysqli_fetch_row($result);

在从数据库获取数据之前,您正在取消序列化数据。 您的代码应该如下所示

$row = mysqli_fetch_row($result);
$data = unserialize($row[0]);

你看过mysqli_错误($link)的结果了吗?奇怪的是您有
$data=unserialize($row[0])
before
$row=mysqli\u fetch\u row($result)。可能的副本应启用错误日志记录!在访问$row时,您会看到E_通知“Undefined variable”(未定义变量),而不是在其定义之前。对不起,$row和$data的顺序是正确的,但是为了保密起见,我在重命名它们时意外地重新排列了它。