PHP/SQLite查询返回字符串


Returning String from Query in PHP/SQLite

我试图用这个查询的返回字符串创建一个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

then setcookie like

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中的第一行数据

你可以设置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);