Php 尝试比较PDO语句

Php 尝试比较PDO语句,php,mysql,pdo,Php,Mysql,Pdo,我正在从我的表中随机抓取两行。然后我想比较它们,以确保它们不是相同的行。如果是,我想继续选择一个随机的行,直到我上了那是不一样的 目前我选择的是随机行,当我点击while循环试图获得另一行时,我的问题出现了。我得到以下错误“对非对象调用成员函数fetch()” 用于($i=1;$i查询(“从`test`中选择*按兰德排序(),限制1”); $t2=$dbtemp->query(“从`test`中选择*orderbyrand()限制1”); $winner=$t1->fetch(PDO::fetc

我正在从我的表中随机抓取两行。然后我想比较它们,以确保它们不是相同的行。如果是,我想继续选择一个随机的行,直到我上了那是不一样的

目前我选择的是随机行,当我点击while循环试图获得另一行时,我的问题出现了。我得到以下错误“对非对象调用成员函数fetch()”

用于($i=1;$i查询(“从`test`中选择*按兰德排序(),限制1”);
$t2=$dbtemp->query(“从`test`中选择*orderbyrand()限制1”);
$winner=$t1->fetch(PDO::fetch_ASSOC);
$loser=$t2->fetch(PDO::fetch_ASSOC);
如果($winner['id']==$loser['id']){
而($winner['id']==$loser['id']){
$t2=$dbtemp->query(“从`content`中选择*orderbyrand()限制1”);
$loser=$t2->fetch(PDO::fetch_ASSOC);//此行发生错误
}
}

任何关于我应该或可以如何做这项工作的建议都会很好。

你为什么不这样做:

$t1 = $dbtemp->query("SELECT * FROM test ORDER BY RAND() LIMIT 2");
然后:

$players = $t1->fetchAll(PDO::FETCH_ASSOC);
$winner = $players[0];
$loser = $players[1];

你为什么不这样做:

$t1 = $dbtemp->query("SELECT * FROM test ORDER BY RAND() LIMIT 2");
然后:

$players = $t1->fetchAll(PDO::FETCH_ASSOC);
$winner = $players[0];
$loser = $players[1];

你为什么不这样做:

$t1 = $dbtemp->query("SELECT * FROM test ORDER BY RAND() LIMIT 2");
然后:

$players = $t1->fetchAll(PDO::FETCH_ASSOC);
$winner = $players[0];
$loser = $players[1];

你为什么不这样做:

$t1 = $dbtemp->query("SELECT * FROM test ORDER BY RAND() LIMIT 2");
然后:

$players = $t1->fetchAll(PDO::FETCH_ASSOC);
$winner = $players[0];
$loser = $players[1];


错误指向哪一行?@HenriqueBarcelos查看注释。
$t2
显然是
FALSE
。请设置
$dbtemp->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)执行任何查询并捕获错误之前,
。错误指向哪一行?@HenriqueBarcelos查看注释。
$t2
显然是
FALSE
。请设置
$dbtemp->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)执行任何查询并捕获错误之前,
。错误指向哪一行?@HenriqueBarcelos查看注释。
$t2
显然是
FALSE
。请设置
$dbtemp->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)执行任何查询并捕获错误之前,
。错误指向哪一行?@HenriqueBarcelos查看注释。
$t2
显然是
FALSE
。请设置
$dbtemp->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
在执行任何查询之前捕获错误。+1表示保持简单Stupid@davidstrachan说到简单性,我很好奇,是否有人注意到外面的for循环。里面的while循环。@YourCommonSense亲吻寻求答案。不需要for循环。@YourCommonSense-for循环就在那里,因为这是发送一个变量告诉它完成此任务的次数。我之所以包含它,是因为我认为它对于找出导致我所得到错误的原因可能很重要。+1表示保持简单Stupid@davidstrachan说到简单,我很好奇,是否有人注意到外面的for循环和里面的while循环。@yourconsense KISS作为答案。不需要for循环。@YourCommonSense-for循环之所以存在,是因为它是函数的一部分,函数会发送一个变量,告诉它完成此任务的次数。我之所以包含它,是因为我认为它可能对找出导致我得到的错误的原因很重要。+1表示简单Stupid@davidstrachan说到简单,我很好奇,是否有人注意到外面的for循环。里面的while循环。@YourCommonSense KISS作为答案。不需要for循环。@YourCommonSense-for循环存在,因为它是函数的一部分,函数会发送一个变量,告诉它完成这项任务的次数。我之所以包含它,是因为我认为它在计算中可能很重要找出导致我所得到错误的原因。+1表示保持简单Stupid@davidstrachan说到简单性,我很好奇,是否有人注意到外面的for循环。里面的while循环。@YourCommonSense亲吻寻求答案。不需要for循环。@YourCommonSense-for循环在那里,因为这是发送变量t的函数的全部部分我记下了完成这项任务的次数,因为我认为这对于找出导致我出错的原因可能很重要。