2013-03-05 138 views
0

我試圖創建與此查詢的返回字符串一個cookie:返回從查詢字符串PHP/SQLite的

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

但是,它返回一個對象而不是字符串。我正在嘗試返回該行的「id」。我該怎麼做呢?

+0

順便說一句,這裏是我想創建cookie的格式:setCookie方法(「會議」,「$標識」,時間()+ 3600); – 2013-03-05 04:37:01

+0

這是PDO ::查詢? – shapeshifter 2013-03-05 04:40:05

+0

我認爲是這樣的... $ database = new PDO(「sqlite:database.sqlite」); – 2013-03-05 04:40:28

回答

0

您需要提取array object,以便您可以訪問id字符串!

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

那麼你可以使用$id,並將其設置在cookie

setcookie("session", "$id", time()+3600); 
+0

我看到這個代碼是針對MySQL的。我正在使用SQLite。這將如何在SQLite中工作? – 2013-03-05 04:41:18

1

你得到一個對象,因爲你只executedquery

對於這一點,你必須從中提取數據, 像

$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

+0

fetchColumn看起來很好。不管怎麼說,多謝拉! – 2013-03-05 04:43:58

1

您可以設置什麼樣的格式PDO進行讀取時返回,

http://php.net/manual/en/pdostatement.fetch.php 

或者你可以返回列本身,

http://php.net/manual/en/pdostatement.fetchcolumn.php 
相關問題