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

Inserting multiple string into mysql using bind_param

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

Fatal error: Call to a member function bind_param() on a non-object

推文数据库:

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







        }
    }





}

问题是你的$con变量没有连接到数据库,因此无法调用里面的方法。

在PDO或mysqli中调用execute函数后添加die()函数打印错误信息也是一个很好的实践,查看查询使用中的错误:

如果使用 PDO: $insert_tweet->execute() or die(print_r($con->errorInfo()));

如果使用 mysqli:

$insert_tweet->execute() or die(mysqli_error($con));