0

我的数据库

id  username
1   xxx
2   bbb
3   vvv
4   bbbbbb

我需要输出为

array('xxx','bbb','vvv','bbbbb');

使用 PDO 我需要从数据库中获取用户名并将其设置为数组,以检查用户名是否存在

4

3 回答 3

3

如果您只检查用户名是否存在,最好修改您的查询来做到这一点,而不是返回多余的数据:

$query = $pdo->prepare("SELECT `id` FROM `users` WHERE `username` = ? LIMIT 1");
$query->execute(array($username_to_test));

if ($query->rowCount() == 1)
{
    // user exists in table
}

如果您确实需要一组用户名,请执行以下操作:

$usernames = array();
$query = $pdo->query("SELECT `username` FROM `users`");
while(($row = $query->fetchObject()) != null)
    $usernames[] = $row->username;
于 2012-10-19T12:58:45.290 回答
0
$pdo = new PDO($dsn,$user,$pass);
$pdos = $pdo->prepare('select username from mytablename');
$pdos ->execute();
$results = array();
while ($row = $pdos->fetch(PDO::FETCH_ASSOC)) {
    $results[] = $row['username'];
}
var_dump($results);

根据 doc设置您的数据库 $dsn、$user 和 $pass before 。

于 2012-10-19T13:03:56.503 回答
0

完全按照您的要求做:

$query = $dbh -> prepare("SELECT username from users");
if ($query -> execute()){
    $user_array = $query -> fetch(PDO::FETCH_ASSOC);
}

不过,蒂姆库珀的回答可能是一个更好的解决方案。

于 2012-10-19T13:09:08.103 回答