我正在尝试使用此查询的返回字符串创建一个 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
then,
$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>";
}
您可以设置获取时 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);