使用PDO的簡單登錄表單。回聲輸出工作正常。進入else case但不進入foreach循環。 var_dump的輸出給出了這個。php mysql pdo結果集,其中一行沒有輸入foreach
回波輸出
1rows SelectedEntered全成環
的var_dump輸出
對象(PDOStatement對象)[3]公開 '的queryString'=>字符串「選擇* from tour_login where username ='admin'and password ='a DMIN'和 狀態= 1' (長度= 81)
if(isset($_POST['login']))
{
$un=$_POST['un'];
$pass=$_POST['pass'];
$res=DB::getInstance()->query("select * from tour_login where username='$un' and password='$pass' and status=1");
$num_rows = $res->fetchColumn();
echo $num_rows."rows Selected";
if($num_rows<=0)
{ echo "Entered error loop";
echo "<script>alert('invalid username and password');document.location='index.php';</script>";
return false;
}
else
{
echo "Entered successfull loop";
foreach ($res as $row) {
echo "Entered successfull for loop";
if($row['type']==0)
{
$_SESSION['admn']=$un;
echo "<script>alert('welcome admin...');document.location='adminhome.php';</script>";
}
else
{
$_SESSION['usr']=$un;
echo "<script>alert('welcome user...');document.location='userhome.php';</script>";
}
}
}
}
什麼我不理解就是爲什麼的foreach不與行表示one.New到Php.I的一些工作中發現使用mysql_num_rows的替代()in pdo在這個StackOverflow問題 https://stackoverflow.com/questions/11305230/alternative-for-mysql-num-rows-using-pdo
布羅謝謝你的努力和分數。我想出了這個問題,我自己會刪除這個問題,但問題是我不能這樣做,因爲它可能會導致問題ban.You是現貨,所以我投票並接受它作爲答案。我正在做的是我正在改變一個現有的PHP項目,用pdo替換不推薦使用的mysql_函數,我沒有任何新的做法,因爲附加了一個很小的時間框架。添加到我開始使用PHP一週回來。所以我不熟悉語言的易用性,而不檢查那些代碼的真正用途,我用它作爲解決方案,並最終結束 –
花費更多的時間.Bro我想問你另一件事,如果有一排有四列和你想第三列訪問然後$ res-> fetchColumn(3)。是否有技巧??從我的看法每次調用fetchColumn()它指向下一行和它的列? –