MySQLi 准备更新不更新数据库

MySQLi prepare update not updating the database

如标题所述,我的MySQL我准备的更新实际上并没有更新数据库。我检查了 MySQL 日志 - 没有错误。这是有问题的代码:

public function update_tweet($tweet)
{
    $prepared_update = $this->connection->prepare("UPDATE Tweets 
                     SET `text` = ?, `algo_score` = ?, `has_algo_score` = ?, `baseline_score` = ?, `has_baseline_score` = ?, `is_sanitized` = ?
                     WHERE `twitter_id` = ?");
    mysqli_stmt_bind_param($prepared_update, "sssssss", $tweet['text'], $tweet['algo_score'], $tweet['has_algo_score'], $tweet['baseline_score'], $tweet['has_baseline_score'], $tweet['is_sanitized'], $tweet['tweet_id']);
    mysqli_execute($prepared_update) or die(mysqli_error($this->connection));
    $prepared_update->close();
}

以及传入推文数组的示例:

Array ( [id] => 2 
        [twitter_id] => 595463376026734592 
        [text] => History has a way of repeating itself 
        [algo_score] => 0 
        [has_algo_score] => 1 
        [baseline_score] => 0 
        [has_baseline_score] => 1 
        [is_sanitized] => 1 
)

和 table 架构:

没有 PHP 错误或 MySQL 错误。我做错了什么?

您的情况:

WHERE `twitter_id` = ?

您要绑定的变量是:

$tweet['tweet_id']

而您得到的数组是:

Array ( [id] => 2 
        [twitter_id] => 595463376026734592

所以你使用了错误的索引,因为索引 tweet_id 未定义(这只是一个通知,你没有收到任何错误或警告)你的 WHERE 条件永远不会 return 正确,因此 - 没有采取任何行动。