0

我正在尝试使用此查询的返回字符串创建一个 cookie:

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

但是,它返回的是一个对象而不是一个字符串。我正在尝试返回该行的“id”。我该怎么做呢?

4

3 回答 3

1

你得到一个对象,因为你executedquery唯一的。

为此,您必须从中获取数据,例如

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

那么如果你正在使用sqlitethen,

$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>";
}

测试这个如何使用 php PDO 在 sqlite3 中获取第一行数据

于 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 object以便您可以访问 id 字符串!

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

然后您可以使用$id并将其设置为cookie

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