Php MySQLi准备的语句在第二次执行中失败

Php MySQLi准备的语句在第二次执行中失败,php,mysqli,Php,Mysqli,我正在尝试制作一个简单的系统,一旦您查看论坛线程,它就会用DB表中保存用户帐户信息的当前UNIX时间更新现有的数组条目。该列设置为接受MEDIUMTEXT,并设置为非空 然而,尽管第一个准备好的语句按预期工作,我收到了正确的值,并且json_表被正确地重新编码,但第二个查询不会更新列数据。无错误,无论我将mysqli设置为什么错误级别。我绑定的两个参数都不是NULL并且都是正确的 我不明白为什么会发生这种情况。我还没有学会的MySQLi魔法?什么地方有限制 $DB = GetDataba

我正在尝试制作一个简单的系统,一旦您查看论坛线程,它就会用DB表中保存用户帐户信息的当前UNIX时间更新现有的数组条目。该列设置为接受MEDIUMTEXT,并设置为非空

然而,尽管第一个准备好的语句按预期工作,我收到了正确的值,并且json_表被正确地重新编码,但第二个查询不会更新列数据。无错误,无论我将mysqli设置为什么错误级别。我绑定的两个参数都不是NULL并且都是正确的

我不明白为什么会发生这种情况。我还没有学会的MySQLi魔法?什么地方有限制

    $DB = GetDatabaseConnection();
    $Statement = $DB->prepare("SELECT `forum_newpost_icondata` FROM `user_accounts` WHERE `id` = ?");
    print(mysqli_error($DB));
    $Statement->bind_param("i", $UserLoggedIn['id']);
    $Statement->bind_result($JSONTable);
    $Statement->execute();

    $PostData = json_decode($JSONTable);
    $PostData[$ThreadID] = time();
    $PostData = (string)json_encode($PostData);

    $Statement->free_result();
    $Statement->close();

    $Reinsertion = $DB->prepare("UPDATE `user_accounts` SET `forum_newpost_icondata` = ? WHERE `id` = ?");
    print(mysqli_error($DB));
    $Reinsertion->bind_param("si", $PostData, $UserLoggedIn['id']);
    $Reinsertion->execute();
    print(mysqli_error($DB)); // Checking after execute is still blank
    $DB->close();

在执行语句之后,您没有检查mysql错误。我只是这样做了。空白的没有。使用print\r$DB->errorInfo;在第二次执行后,检查是否有错误。为什么您认为会有错误?将JSON数据存储在数据库中,然后尝试操作它是一个非常糟糕的主意。您应该修改数据库设计,使JSON列中保存的数据保存在自己的列中。这样,大部分这种胡言乱语就可以避免了。