我正在从twitter api中检索推文,我试图保存在我的数据库中,但是我不断收到错误,我似乎无法修复。我检查了参数的数量是否正确,一切都应该没问题,所以我不知道为什么会出现以下错误:
致命错误:在非对象
上调用成员函数bind_param()
推文数据库:
function retrievePlayerTweets(){
global $con;
$query = $con->prepare("Select players.fullname, players.twitter_user, team.id as teamId FROM players, team WHERE players.teamId = team.id");
$query->execute();
$query->bind_result($fullname, $twitter_user, $teamId);
while ($query->fetch()) {
foreach(retrieveUserTweets($twitter_user) as $twitterData) {
$id = $twitterData['id_str'];
$text = $twitterData['text'];
$name = $twitterData['user']['name'];
$dateString = $twitterData['created_at'];
$favoriteCount = $twitterData['favorite_count'];
$date = date('Y-m-d H:i:s', strtotime($dateString));
$insert_tweet = $con->prepare("INSERT IGNORE INTO tweets (`fullname`, `username`, `text`, `created`, `teamId`, `twitterId`, `favoriteCount`) VALUES (?, ?, ?, ?, ?, ?, ?)");
$insert_tweet->bind_param("ssssisi", $name, $twitter_user, $text, $date, $teamId, $id, $favoriteCount);
$insert_tweet->execute() or die(mysqli_error($con));
}
}
}
答案 0 :(得分:0)
问题在于你的$con
变量未连接到数据库,因此无法调用其中的方法。
在调用PDO或mysqli中的执行函数后添加die()
函数来打印错误消息也是很好的做法,以查看查询使用中的错误:
如果使用PDO:
$insert_tweet->execute() or die(print_r($con->errorInfo()));
如果使用mysqli:
$insert_tweet->execute() or die(mysqli_error($con));