2015-10-16 85 views
0

嗨,我是新來的PDO,我只是學習如何做一個查詢,我讀了很多關於這個無處不在互聯網上,沒有運氣,然後我試了這個,但我仍然想知道這是否是正確的做法?最好的方法是如何做到這一點,因爲當我嘗試時,我沒有任何類型的錯誤,並且任何反應。最好和最安全的方式來回顯結果與pdo

<?php 

require_once 'dbconfig.php'; 



// (echo test) $name_structure='%s'; 
// (echo test) $title_structure='%s'; 

try { 
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); 

$sql = 'SELECT * 
     FROM portfolio'; 

$q = $conn->prepare($sql); 
$q->execute(array('%son')); 
$q->setFetchMode(PDO::FETCH_ASSOC); 

while ($r = $q->fetch()) { 
    echo sprintf($name_structure, $r['name']); 
    echo sprintf($title_structure, $r['title']); 
    echo sprintf($description_structure, $r['description']); 
    echo sprintf($img_structure, $r['img']); 
    echo sprintf($project_end_structure, $r['project_end']); 



} 
} catch (PDOException $pe) { 
die("Could not connect to the database $dbname :" . $pe->getMessage()); 
} 

回答

0

當你忘了解釋一下什麼是「這個」你想,這裏有兩種可能的情況:

萬一「本」是用於獲取從數據庫中的所有記錄,代碼將

$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$stmt = $conn->query('SELECT * FROM portfolio'); 
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    echo $row['name']; 
    echo $row['title']; 
    echo $row['description']; 
    echo $row['img']; 
    echo $row['project_end']; 
} 

萬一 「這個」 是關於只選擇某些記錄,它的代碼如下

$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$stmt = $conn->prepare('SELECT * FROM portfolio WHERE name LIKE ?'); 
$stmt->execute(array('%son')); 
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    echo $row['name']; 
    echo $row['title']; 
    echo $row['description']; 
    echo $row['img']; 
    echo $row['project_end']; 
} 

是如何使這個類的最佳方式,

PDO是已經是一流的,提醒你。所以,把它變成另一個,只是學習如何使用PDO。

我已經閱讀了很多關於這個無處不在互聯網上,沒有運氣,

在這裏,你走了,我寫的教程是有道理的(至少對於人誰擁有基本的PHP/SQL培訓),The only proper guide on PDO

+0

感謝您的精彩迴應,這正是我所需要的!和你寫的很好的指南,因爲我會立即閱讀! –