MySQLi准备语句默默地失败了第二次执行

I am attempting to make a simple system where, once you view forum thread it updates an existing array entry with the current UNIX time in the DB table that holds the user's account information. The column is set to accept MEDIUMTEXT and is set as NOT NULL.

However, while the first prepared statement works as intended and I receive the correct value, and the json_table is correctly re-encoded, the second query does not update the column data. No errors (no matter what error level I set mysqli to). Neither of the parameters I am binding are NULL and are correct.

I am stumped as to why this is happening. MySQLi magic that I haven't learned? Restrictions somewhere?

    $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();