2014-01-13 54 views
-2

我正在嘗試將這些數據提取到while循環中,並且它完全沒有任何返回,任何想法是什麼錯誤?PDO在while循環中提取數據

代碼:

<?php 
if(isset($_GET['id'])){ 
    require('include/db.php'); 
    require('include/init.php'); 
    if(isset($_GET['id']) && is_numeric($_GET['id'])){ 
     $userid = $odb->real_escape_string($_GET['id']); 
     $result3 = $odb->prepare("SELECT * FROM users where ID = :id"); 
     $result3->bindValue(":id", $userid); 
     $result3->execute(); 
     while($row3 = $result3->fetch_array(MYSQLI_ASSOC)){ 
      $username=$row['username']; 
      $email=$row['email']; 
      $rank=$row['rank']; 
      $membership=$row['membership']; 
      $expire=$row['expire']; 
      $status=$row['status']; 
      echo " 
      Username: ".$username."<br /> 
      Email: ".$email."<br /> 
      Rank: ".$rank."<br /> 
      Membership: ".$membership."<br /> 
      Expire: ".$expire."<br /> 
      Status: ".$status."<br /> 
      "; 
     } 
    } else { 
     echo "You did not enter an ID!"; 
    } 
?> 

如果你需要的任何信息,讓我知道!

+3

對'$ _GET ['id']''不能有太多'isset'檢查;} – Phil

+0

另外,什麼類型的對象是'$ odb'?你不應該逃避id參數,然後綁定它。簡單地做後者 – Phil

+0

這不是$ _GET ['id']正常工作的問題,我已經測試過該部分。 – user3023566

回答

4

由於您使用的是PDO,因此必須更新一些功能。您可以準備並綁定該值,而不是使用mysql_escape_string(),而PDO將逃避一切。另外fetch_array()應該是fetch()MYSQLI_ASSOC應該是PDO::FETCH_ASSOC

<?php 
$id = isset($_GET['id']) ? intval($_GET['id']) : 0; 
if($id) { 
    require('include/db.php'); 
    require('include/init.php'); 

    // Prepare && Binding will take care of escaping the string 
    $result = $odb->prepare("SELECT * FROM users where ID = :id"); 
    $result->bindValue(":id", $id); 

    $result->execute(); 
    while($row = $result->fetch(PDO::FETCH_ASSOC)) { 
     $username = $row['username']; 
     $email = $row['email']; 
     $rank = $row['rank']; 
     $membership = $row['membership']; 
     $expire = $row['expire']; 
     $status = $row['status']; 

     echo " 
     Username: ".$username."<br /> 
     Email: ".$email."<br /> 
     Rank: ".$rank."<br /> 
     Membership: ".$membership."<br /> 
     Expire: ".$expire."<br /> 
     Status: ".$status."<br /> 
     "; 
    } 
} else { 
    echo "You did not enter an ID!"; 
} 
?> 
+0

再次感謝@菲爾..所有的初始錯誤,OP;); – Sam

+0

我現在更困惑:$我該怎麼辦?這並不完全正常。 – user3023566

+0

你得到了什麼樣的錯誤@ user3023566 – Sam