我想从阵列中获取已注册玩家的所有列表
这是我的功能
function UpdateContact()
{
try {
$conn = $this->GetDBConnection();
$linkedInId = trim($_REQUEST['linkedInId']);
$statement = $conn->prepare('UPDATE users SET linkedInId = :linkedInId WHERE linkedInId = :linkedInId');
$statement->bindParam(':linkedInId', $linkedInId, PDO::PARAM_STR);
$statement->execute();
//$updatedTime = time() - 120;
$ids = implode(",",$_POST['ids']);
// $ids = (abc,def,geh,ijk,lac);
$statement = $conn->prepare('SELECT * FROM users WHERE linkedInId IN (:ids)');
$statement->execute($ids);
$conn = null;
if (!($row = $statement->fetchAll(PDO::FETCH_ASSOC)))
return false;
else
return $row;
} catch(PDOException $e) {
throw $e;
}
}
只返回false
也许是因为我无法使用PDO语句绑定数组?
如何修复此解决方案,我可能希望稍后添加更多绑定参数,因此我也不想执行execute($ids)
。
我也试过了bindParam(':ids',$ids)
但是无济于事
$items = array();
//$statement->bindParam(':updatedTime', $updatedTime, PDO::PARAM_STR);
foreach ($id as $ids)
{
$statement = $conn->prepare('SELECT * FROM users WHERE id = :id');
$statement->bindParam(':id', $id, PDO::PARAM_STR);
$statement->execute();
if(($row = $statement->fetch(PDO::FETCH_OBJ)))
$items[] = $id;
}
答案 0 :(得分:0)
我认为解析数组/列表并对数组/列表中的每个id执行select会更有意义。
伪代码:
init resultArray;
For x in List
select * from database where ids =: x
if result
add result to resultArray
return resultArray
但这只是基本的做法,我不确定你是否可以做得更先进。