0

我想从一个数组中获取所有注册玩家的列表

这是我的功能

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;
        }       
    }

只返回假

也许是因为我无法使用 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;
            }
4

1 回答 1

0

我认为解析数组/列表并为数组/列表中的每个 id 执行选择会更有意义。

伪代码:

init resultArray;
For x in List
    select * from database where ids =: x
    if result
        add result to resultArray
return resultArray

但这只是做它的基本方法,我不确定你是否可以做得更高级。

于 2013-05-21T11:50:54.327 回答