2013-10-26 37 views
1

下面是我的代碼,它全部用mysql編寫。我正在嘗試切換到PDO。我的問題是,什麼是PDO中的mysql_result的等價物?PDO中的mysql_result

$query = "SELECT id, firstname, lastname FROM table"; 
if($mysql_query = mysql_query($query)){ 
    $id = mysql_result($mysql_query, 0, 'id'); 
    $firstname = mysql_result($mysql_query, 0, 'firstname'); 
    $lastname = mysql_result($mysql_query, 0, 'lastname'); 
} 

到目前爲止,我只能通過執行以下操作來執行$ query。

$query = $PDO -> prepare("SELECT id, firstname, lastname FROM table"); 
$query -> execute(); 
+0

http://us2.php.net /manual/en/pdo.query.php –

回答

1

正如伊恩·如上所述是單向的,或者如果你的不使用準備功能,那麼你可以這樣做:

$sth = $PDO->query("SELECT id, firstname, lastname FROM table"); 

if ($sth->rowCount() > 1) { 
    // One way to get the results if you have more then one row 
    foreach ($sth as $row) { 
     echo "ID: ".$row['id']."\n"; 
     echo "First name: ".$row['firstname']."\n"; 
     echo "Last name: ".$row['lastname']."\n"; 
    } 
} elseif ($sth->rowCount() == 1) { 
    // Or this way if you just have one row 
    $result = $sth->fetch(PDO::FETCH_ASSOC); 

    echo "ID: ".$result['id']."\n"; 
    echo "First name: ".$result['firstname']."\n"; 
    echo "Last name: ".$result['lastname']."\n"; 
} 
+0

謝謝,它的工作原理! – user2921965

+0

這段代碼不必要的臃腫。 –

1

嘗試......

$query = $PDO->prepare("SELECT id, firstname, lastname FROM table"); 
$query->execute(); 
$res = $query->fetchAll(PDO::FETCH_ASSOC); 
var_dump($res); 

====更新響應評論====

$query = $PDO->prepare("SELECT id, firstname, lastname FROM table"); 
$query->execute(); 
$people = $query->fetchAll(PDO::FETCH_CLASS, 'stdClass'); 
foreach($people as $person) { 
    echo 'ID: ' . $person->id . PHP_EOL . 
     'First Name: ' . $person->firstname . PHP_EOL . 
     'Last Name: ' . $person->lastname . PHP_EOL; 
} 
+0

這就是當你想要獲取數據,我試圖檢索像第一行用戶名,第二行姓氏等等的具體數據.... – user2921965