2
从相同函数的同一个表中获取两次会导致问题吗?使用PDO在if语句中获取
我试图从记录的用户提取所有“项目”,如果用户没有项目该函数应该返回false,否则,它应该返回false并回显“没有”,如果从数据库中的项目记录的用户应该返回true并回显所有的项目名称。 除第一个项目之外的所有东西都会被切断,所以如果用户X有项目1,2,3,4,输出将是:TwoThreeFour。
我猜是因为即时通讯使用两次从表中获取,如果是的话,我该如何解决它,所以它的工作原理?
继承人的功能:
public function myitems() {
$user_user_id = $_SESSION['userSession'];
$stmt = $this->db->prepare("SELECT * FROM item WHERE user_user_id=:user_user_id");
$stmt->execute(array(":user_user_id" => $user_user_id));
if ($itemRow = $stmt->fetch(PDO::FETCH_ASSOC) == 0) {
echo "nothing";
return false;
} else {
while ($itemRow = $stmt->fetch(PDO::FETCH_ASSOC)) {
$item_item_id = $itemRow['item_id'];
$stmt2 = $this->db->prepare("SELECT * FROM picture WHERE item_item_id=:item_item_id");
$stmt2->execute(array(":item_item_id" => $item_item_id));
$imgRow = $stmt2->fetch(PDO::FETCH_ASSOC);
echo $itemRow['itemname'];
}
return true;
}
}
是的,fetch会将行光标向前移动,因此您正确地认为这是您的问题。在我看来,如果fetch松散地等于0,那么检查是否存在任何行是一种不好的做法。 – Devon