Записать ID в сессию как переменную - PullRequest
1 голос
/ 15 декабря 2010

Мне нужно вставить идентификатор в сеанс для последующего использования. Таблица содержит идентификатор, имя пользователя и пароль. Для получения идентификатора я использую:

$sql = "SELECT id FROM members WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

И пытается сохранить его в сеансе:

$_SESSION["id"] = $result;

Когда я пытаюсь вставить $ _SESSION [id] в таблицу, я получаю значение 0 (это значение по умолчанию, которое я сделал).

Что-то нового в PHP, любая помощь будет оценена :)

Ответы [ 3 ]

1 голос
/ 15 декабря 2010

вам нужно получить значение также:

$result=mysql_query($sql);
$fetch =mysql_fetch_array($result);
$_SESSION["id"] = $fetch["ID"];
0 голосов
/ 15 декабря 2010

mysql_query () возвращает ресурс в случае успеха или FALSE в случае ошибки. Вам нужно извлечь строки из этого результата:

$result = mysql_query("SELECT id, name FROM mytable") or die(mysql_error());
$row = mysql_fetch_array($result);
if($row){ // check that there was really selected at least one row
    $_SESSION['id'] = $row['id'];
}
0 голосов
/ 15 декабря 2010

Попытка напечатать $ result не позволит получить доступ к информации в ресурсе.

Вам необходимо использовать функцию для доступа к возвращаемому ресурсу:

$row = mysql_fetch_assoc($result)
$id = $row['id'];

Правильный способ обработки результата - сначала проверить, имеет ли он какое-либо значение, т. Е .:

if (!$result) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...