Mysqli简单查询:使用mysqli_stmt_bind_result的奇怪结果

时间:2016-01-22 16:42:49

标签: php mysql mysqli

我将mySQL表定义为:

ViewPager

此表中的两个不同条目如下:

CREATE TABLE IF NOT EXISTS `tweet` (
  `user_mail` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `date_sent` datetime NOT NULL,
  `date_edited` datetime NOT NULL,
  `message` tinytext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`user_mail`,`date_sent`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我使用这个PHP函数来检索我的表格的所有推文(目前只有2条推文)'推文'

INSERT INTO `tweet` (`user_mail`, `date_sent`, `date_edited`, `message`) VALUES
('RichardSpencer@gmail.com', '2016-01-22 14:07:45', '', 'First tweet !');

INSERT INTO `tweet` (`user_mail`, `date_sent`, `date_edited`, `message`) VALUES
('JohnDoe@gmail.com', '2016-01-22 14:07:45', '', 'Second tweet  !');

我正在调用这个函数:

function getAllTweets($con, $limit){

    $stmt = mysqli_prepare($con, 'SELECT * FROM tweet ORDER BY date_sent DESC LIMIT 0, ?') or die('Oups erreur dans la requète SELECT avec le message: '.  mysqli_error($con));

    mysqli_stmt_bind_param($stmt, 'i', $limit);

    mysqli_stmt_execute($stmt);

    mysqli_stmt_bind_result($stmt, $datas['user_mail'], $datas['date_sent'], $datas['date_edited'], $datas['message']);
    while($datas == mysqli_stmt_fetch($stmt)){

        $result []= $datas;
    }

    return $result;    
}

当我看到$allTweets = getAllTweets($con, 99); 时,我得到了2条推文,正如我所想的那样,但两条结果都是相同的推文。 。 。这是var_dump结果

var_dump($allTweets);

如果你看到我的桌子,我应该发一条推文,上面写着#34; First tweet!" 第二条推文带有消息"第二条推文!"

我的错误在哪里?

0 个答案:

没有答案