PHP получить строку результата из PostgreSQL Query - PullRequest
2 голосов
/ 03 декабря 2009

Я новичок в PHP и SQL, но мне нужен способ сохранить результат запроса SQL в переменную.

Запрос выглядит так:

$q = "SELECT type FROM users WHERE username='foo user'";
$result = pg_query($q);

Запрос вернет только одну строку; тип учетной записи пользователя, и мне просто нужно сохранить его в переменной, чтобы я мог проверить, есть ли у пользователя разрешение на просмотр страницы.

Я знаю, что мог бы просто сделать этот запрос:

"SELECT * FROM users WHERE username='foo user' and type='admin'";
if(pg_num_rows($result) == 1) {
    //...
}

Но мне кажется, что это плохая практика.
В любом случае, было бы хорошо знать, как сохранить его как переменную для дальнейшего использования.

Ответы [ 2 ]

6 голосов
/ 03 декабря 2009

Вы можете передать результат в pg_fetch_assoc () и затем сохранить значение, или вы хотите получить значение без дополнительного шага?

$result = pg_query($q);
$row = pg_fetch_assoc($result);
$account_type = $row['type'];

Это то, что вы ищете?

1 голос
/ 04 декабря 2009

Использование pg_fetch_result:

$result = pg_query($q);
$account_type = pg_fetch_result($result, 0, 0);

Но, с другой стороны, всегда полезно проверить, есть ли у вас какие-либо результаты, поэтому я сохраню проверку pg_num_rows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...