0

このクエリの戻り文字列で Cookie を作成しようとしています:

$id = $database -> query("SELECT id FROM accounts WHERE username = '$username' AND password = '$password'");

ただし、文字列ではなくオブジェクトを返しています。行の「id」を返そうとしています。どうすればいいですか?

4

3 に答える 3

1

あなただけのオブジェクトを取得しexecutedますquery

このためには、そこからデータをフェッチする必要があります。

$result = $database -> query("SELECT id FROM accounts WHERE username = '$username' AND password = '$password'");

その後、使用している場合sqliteは、

$data = sqlite_fetch_array($result, SQLITE_ASSOC);
$id=$data['id'];

http://www.php.net/manual/en/function.sqlite-fetch-array.phpを参照してください

次にsetcookie好き:

setcookie("session", "$id", time()+3600);

http://php.net/manual/en/function.setcookie.phpを参照してください

使用しているPDO場合

次のように試してください:

$result=$database->query("SELECT id FROM accounts WHERE username = '$username' AND password = '$password'");
if ($result) {
  $row = $result->fetch(PDO::FETCH_ASSOC);
  echo "<pre>";
  print_r($row);
  echo "</pre>";
}

これをテストするHow to get first row of data in sqlite3 using php PDO

于 2013-03-05T04:41:39.977 に答える
1

フェッチ時に PDO が返す形式を設定できます。

http://php.net/manual/en/pdostatement.fetch.php

または、列自体を返すこともできます。

http://php.net/manual/en/pdostatement.fetchcolumn.php
于 2013-03-05T04:42:16.880 に答える
0

array objectid 文字列にアクセスできるように、を抽出する必要があります。

$id = $this->db->get()->row_array()->('id');

$id次に、次のように使用して設定できますcookie

setcookie("session", "$id", time()+3600);
于 2013-03-05T04:40:09.320 に答える