問題描述
mysqli(a,b,c,d)‑>query(sql)‑>fetch_assoc() 究竟是如何工作的? (How exactly does mysqli(a,b,c,d)‑>query(sql)‑>fetch_assoc() work?)
我是 php 和 mysqli 的新手,並且一直在嘗試了解這些內置函數是如何工作的。我已閱讀文檔和許多教程/示例。
我有類似的東西:
$conn = new mysqli(vars); <br />
$sql = "Select * from Users where name ='$name'";
$result = $conn‑>query($sql);
$pass = result‑>fetch_assoc()['Pass'];
//check password stuff
工作正常,但是如果我嘗試使用 $result‑>fetch_assoc()['ID']
它返回空值。如果我交換 ID 和 Pass 的順序,則 id 返回並且 pass 返回 null。
我不明白為什麼會這樣。我認為(這顯然是錯誤的)結果應該存儲整行(它確實如此),然後當我獲取 assoc 時,我應該只是從行中提取數據。但是,當我獲取 assoc 時,它似乎覆蓋了結果。這是怎麼回事?
參考解法
方法 1:
Every time you call fetch_assoc()
, it fetches the next row. There'll presumably only be one user with a specific name, so the result of the second fetch_assoc()
call will be null
.
Store the value of $result‑>fetch_assoc()
and you can do what you want with it afterwards.
$user = $result‑>fetch_assoc();
echo $user['ID'];
echo $user['Pass'];