<?php
try{
$db=new PDO("mysql:host=localhost;dbname=placement","rot","password");
}catch(Exception $e){
die("An error occured".$e->getMessage());
}
$username=$_POST['username'];
$password=$_POST['password'];
$stmt=$db->prepare("SELECT regno,password FROM placement.authenticate
WHERE regno = ? AND password = ? LIMIT 1");
$result=$stmt->execute(array($username,$password));
if($result){
$row=$stmt->fetch(PDO::FETCH_ASSOC);
echo "{$row['admin']}<br/>";
}
else{
die("Error Occured<br/>");
}
?>
我使用mysql。
第一個問題
我真的使用上面的代碼來檢查我的數據庫的用戶名和密碼 如果($結果)我undesrtand如果執行$語句就返回true,但反正是有我可以檢查查詢是否有任何結果? 我讀了一個Q/A在這裏在stackoverflow,它說,使用$ stmt-> rowCount()不一定返回所需的結果是否有任何其他簡單的解決方法,這一個評論建議使用if ($ stmt-> fetch()> 0)這種方法是否正確?
第二問題
我使用$行= $ stmt->取(PDO :: FETCH_ASSOC)讀取當前行; 我收到錯誤,說undefined index.at行
echo「{$ row ['admin']}」;
另外當我使用print_r($ row)我只得到2列而不是第3列。
對不起,愚蠢的問題,但任何我剛纔在代碼中使用的PDO statments的這個結果。(我真的學習PHP)
謝謝我想我應該多做一點關於問題1的查詢 – AAB
,我應該怎麼做? – AAB
'$ stmt-> rowCount()'應該適合你。如果沒有,你應該發佈一個新的問題,顯示你正在使用的代碼,包括該語句,以及一個很好的例子,說明它何時失敗以及結果如何。這將幫助我們排除故障。 –