Кто-нибудь может мне помочь, как проверить есть ли в таблице пользователи пользователя с этим именем пользователя? - PullRequest
0 голосов
/ 27 июня 2011

Кто-нибудь может мне помочь, как проверить, есть ли в таблице user user с этим именем пользователя? Я использую SQLite3, PHP и PDO, и я написал код как

 try {
    $db = new PDO('sqlite:/var/db/db_users.db');
    $query = 'SELECT COUNT(*) FROM users WHERE username= :username';// moze LIMIT 1 da se stavi jer je sigurno jedan sa istim username i password sine
    $sth = $db->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
    $sth->execute(array(':username' => $username));
    $result = $sth->fetchAll();
} catch (Exception $e) {
    return (array('message' => 'error'));
}

но нет single_fetch или я не могу найти. Кто-нибудь может мне помочь, как решить эту проблему?

1 Ответ

1 голос
/ 27 июня 2011

Просто используйте одну выборку ... поскольку есть только одна строка, которую вы выбираете, как обычно, и не зацикливайтесь, а затем закрывайте курсор. Если вы только после определенного значения, вы можете просто потянуть столбец ...

try {
    $db = new PDO('sqlite:/var/db/db_users.db');

    // add an alias.. not really necessary but good practice
    $query = 'SELECT COUNT(*) AS usercount FROM users WHERE username= :username';

    $sth = $db->prepare($query);
    $sth->execute(array(':username' => $username));

    // just call regular fetch for the first an only result
    // use fetch(PDO::FETCH_COLUMN) or fetchColumn to jsut get 
    // a single column value from the row
    $result = $sth->fetchColumn(0);

    // be nice and close the cursor since we are done.
    $sth->closeCursor();

} catch (Exception $e) {
    return (array('message' => 'error'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...