我的查询无法获取。它在我的SQL控制台中运行得很好,所以我很茫然。这是代码。
$q_st = "SELECT tryouts.playerFName,tryouts.playerLName,tryouts.mainEmail,
tryouts.secondEmail, players.number FROM tryouts LEFT JOIN players ON
players.userID=tryouts.userID WHERE players.team = ?
ORDER BY tryouts.playerLName";
$stmt = $GLOBALS['m']->prepare($q_st);
$stmt->bind_param("s",$GLOBALS['c_team']);
$stmt->execute();
$stmt->bind_result($pfn,$pln,$em,$em2,$num);
if($stmt->fetch()==false)
{
echo($GLOBALS['m']->error . $GLOBALS['m']->sqlstate ." Haha It doesn't work and YOU don't know why!!!");
}
else
{
while($stmt->fetch()) {
static $count3;
echo ($pfn . " " . $pln . " " . $num . "<input type=\"checkbox\" class=\"player\" value=\"" . $em ."\" id=\"player ". ++$count3 . "\"><br />");
}
}
结果是“00000哈哈它不起作用,你不知道为什么!!!”
我已经测试了所有其他stmt参数,它们都取得了成功。 有什么想法吗?
答案 0 :(得分:1)
由于mysqli_stmt_fetch()方法可以返回null
和false
,您必须使用===
检查返回的值是否为false
(或者如果它是null
或不是{。}}。否则,您将返回值null
解释为错误代码,而不是。
此外,您的代码会在第一次fetch()
调用时从结果中读取一行,但您不会以任何方式处理返回的行。您正在删除结果集的第一行,这可能不是您想要的。
如果您想知道结果集使用了多少行mysqli_stmt_num_rows。