このクエリの戻り文字列で Cookie を作成しようとしています:
$id = $database -> query("SELECT id FROM accounts WHERE username = '$username' AND password = '$password'");
ただし、文字列ではなくオブジェクトを返しています。行の「id」を返そうとしています。どうすればいいですか?
あなただけのオブジェクトを取得し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
フェッチ時に PDO が返す形式を設定できます。
http://php.net/manual/en/pdostatement.fetch.php
または、列自体を返すこともできます。
http://php.net/manual/en/pdostatement.fetchcolumn.php
array object
id 文字列にアクセスできるように、を抽出する必要があります。
$id = $this->db->get()->row_array()->('id');
$id
次に、次のように使用して設定できますcookie
。
setcookie("session", "$id", time()+3600);