2012-09-19 58 views
1

您好所有,PHP/mysqli的選擇多列

這個查詢下面包含了我想有mysqli的處理

"SELECT password, salt FROM accounts WHERE username=?" 

到目前爲止,似乎對如何沒有文件已準備語句fetch_array()以OO風格和預處理語句工作。我能找到最接近的是http://php.net/manual/en/mysqli-result.fetch-array.php

有沒有用的mysqli做準備報表(以下簡稱OO方法)的特定的「正確」的方法是什麼?謝謝!

+0

不要在數據庫中存儲密碼! – Greg

+1

所以在哪個密碼存儲.. ?? – Gautam3164

+0

其實密碼存儲爲sha256哈希值,鹽應該以*非常奇怪的方式工作(不是傳統的鹽你堅持兩端和哈希再次),所以我沒有那實現,我真的現在想的是能夠在mysqli的預處理語句選擇多列,面向對象的風格 –

回答

2

你不會直接拿到對象進行預處理語句的數據庫。

使用fetchhttp://php.net/manual/en/mysqli-stmt.fetch.php來遍歷結果,創建所需的類實例併爲其分配數據。

甲模型類通常將具有read方法做到這一點。該方法返回一個實例或一組實例。

(看一看symfony的模型:http://www.symfony-project.org/book/1_0/08-inside-the-model-layer有所謂同級車型提供靜態方法「來檢索表中的記錄他們的方法通常返回一個對象或相關對象類的對象的集合。 「)。

+0

因此,這意味着...我不能做到這一點像fetch_array()-.-的老式方法?我認爲準備好的陳述有點不同xP –

+0

好。似乎沒有與預處理語句等同的「fetch_object」。你將不得不使用fetch:http://php.net/manual/en/mysqli-stmt.fetch.php – Tim

+0

yaay問題解決:P –