正如标题所述,我的MySQLi准备更新实际上并没有更新数据库。我检查了MySQL日志 - 没有错误。以下是有问题的代码:
String osName = System.getProperty("os.name");
String osVersion = System.getProperty("os.version");
传递的推文数组的一个例子:
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();
}
表格架构:
没有PHP错误或MySQL错误。我做错了什么?
答案 0 :(得分:3)
你的情况:
WHERE `twitter_id` = ?
您要绑定的变量是:
$tweet['tweet_id']
你得到的阵列是:
Array ( [id] => 2
[twitter_id] => 595463376026734592
因此您使用了错误的索引,因为索引tweet_id
未定义(它只是一个通知,您没有收到任何错误或警告)您的{{1}因为条件永远不会返回true,所以 - 没有采取任何行动。