编辑: 为了澄清,我使用 PDO 到 MySQL 数据库
好的,我的查询有一点问题。我试过谷歌搜索和'stackoverflowing',但无济于事。我正在尝试从名为download store的表中选择所有记录,其中 ownerid = '1'
//Partial code
$sql="SELECT * FROM boughtdownloads WHERE ownerid=:userid";
$prep=$GlobalDB->prepare($sql);
$prep->bindParam(':userid',$userid,PDO::PARAM_INT);
$prep->execute();
if($prep->rowCount()=='0')
{
return 'Error with get owned IDS';
}
else
{
foreach($prep->fetchAll()as $res)
{
$owned[]=$res['fileid'];
}
$owned=implode(",",$owned);
return $owned;
}
按预期工作,返回1,2
$OwnedIDS=$this->GetOwnedIDS($userid); // The same code as above ^
//This query doesn't work, even with the following:
//$OwnedIDS="1,2"; //Which is what's expected, and returned, from the above
$sql="SELECT * FROM downloadstore WHERE fileid IN (:owned)";
$prep=$GlobalDB->prepare($sql);
$prep->bindParam(':owned',$OwnedIDS);
$prep->execute();
if($prep->rowCount()=="0")
{
return 'Error with remaining disk space';
}
else
{
echo $prep->rowCount();
}
这仅返回 1 条记录,尽管下载存储表
$GlobalDB
中有两条记录= pdo 连接字符串(有效)
$userid = $_SESSION
, 等于 "1"
[下载商店截图]
[购买物品截图]
如您所见,每个表中有 2 条记录,具有有效的 fileid。
但是在使用 IN 子句查询下载存储时,只提取了 1 条记录。
有人可以帮帮我吗?这可能是我忽略的一些愚蠢简单的事情,但我已经三重检查了,我确信我的查询或表格没有任何问题(尽管显然有)。
谢谢,罗伯