gpt4 book ai didi

php - 从正确的表中检索值

转载 作者:行者123 更新时间:2023-11-29 00:39:15 24 4
gpt4 key购买 nike

我想从表列表(下面的se)中检索所有帖子,列表用户中有一个匹配项,以及一个指定用户id的匹配项(在同一个表中,列表用户)。但是,查询似乎有问题,因为我得到了下面的错误消息。
我绑定的字段数与list中的字段数相同,所以不是那样的。但是,不应该检索所有列表,只检索那些在listUser表中具有匹配listId并且其中的userId也匹配的列表。
我希望这一切都有意义,否则请告诉我。
错误消息:
警告:mysqli_stmt::bind_result()[mysqli stmt.bind result]:绑定变量的数目与第166行/Applications/XAMPP/xamppfiles/htdocs/Collaborage/Model/Database.php中准备好的语句中的字段数目不匹配
桌子:
列表:listId,userId,listName,creationDate,expireDate,isPublic
listUser:listUserId、listId、userId、isFinished、hasStarted
型号:

public function GetAllAssignedLists($userId) {

$query = "SELECT * FROM list AS l
INNER JOIN listUser AS lu
ON l.listId = lu.listId
WHERE l.userId = ?";

$stmt = $this->m_db->Prepare($query);

$stmt->bind_param('i', $userId);

$assignedLists = $this->m_db->GetLists($stmt);

return $assignedLists;
}

数据库:
public function GetLists($stmt) {

if ($stmt === FALSE) {
throw new \Exception($this->mysqli->error);
}

if ($stmt->execute() == FALSE) {
throw new \Exception($this->mysqli->error);
}

if ($stmt->bind_result($listId, $userId, $listName, $creationDate, $expireDate, $isPublic) == FALSE) {
throw new \Exception($this->mysqli->error);
}

while ($stmt->fetch()) {
$lists[] = array('listId' => $listId,
'userId' => $userId,
'listName' => $listName,
'creationDate' => $creationDate,
'expireDate' => $expireDate,
'isPublic' => $isPublic);
}

$stmt->Close();

return $lists;
}

最佳答案

试试这个:

  $query = "SELECT * FROM list AS l
INNER JOIN listUser AS lu
ON l.listId = lu.listId
WHERE l.userId = :user";

$stmt = $this->m_db->Prepare($query);

$stmt->bindParam(':user', $userId);

来源: http://php.net/manual/en/pdo.prepared-statements.php

关于php - 从正确的表中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13016182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com