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