使用bind_param将多个字符串插入mysql

时间:2015-05-29 09:07:02

标签: php mysql twitter

我正在从twitter api中检索推文,我试图保存在我的数据库中,但是我不断收到错误,我似乎无法修复。我检查了参数的数量是否正确,一切都应该没问题,所以我不知道为什么会出现以下错误:

  

致命错误:在非对象

上调用成员函数bind_param()

推文数据库:

enter image description here

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







        }
    }





}

1 个答案:

答案 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));