2016-05-17 24 views
1

有一點問題與我的PHP代碼數據..PHP的MySQL提取毛坯

$stmt = $db->prepare("SELECT * FROM mytable WHERE TheGroup = :SearchName ORDER BY TheTime DESC"); 
$stmt->bindParam(':SearchName', $request, PDO::PARAM_STR); 
$stmt->execute(); 
$result = $stmt->fetchAll(PDO::FETCH_ASSOC); 

$count = count($result); 
for ($i = 0; $i < $count; $i++) { 
    $mTheAvatar = $result[$i]->TheAvatar; 
    $mTheDirection= $result[$i]->TheDirection; 
    $mTheGroup = $result[$i]->TheGroup; 
    $mTheMedia = $result[$i]->TheMedia; 
    $mTheMessage = $result[$i]->TheMessage; 
    $mTheSenderName= $result[$i]->TheSenderName; 
    $mTheThumbImage = $result[$i]->TheThumbImage; 
    $mTheTime = $result[$i]->TheTime; 
    $mTheMediaExtension = $result[$i]->TheMediaExtension; 

    echo "hello"; 
    echo $mTheAvatar; 
    echo " <- this is avatar"; 
} 

如果我做的var_dump()我看到被請求的數據沒有問題。 如果我附和變量,它們是空白.. 我有三重檢查,該表的列名是否正確..

的$ mTheAvater是在表中的PIC,如果給出了一個可能的線索,但其餘的都是空白以及不知道什麼是???

+0

你可以在這裏包含'var_dump()'的輸出嗎? – Epodax

回答

3

你可以測試:

$mTheAvatar = $result[$i]['TheAvatar']; 

據我所知在FETCH_ASSOC它在上述結構中返回的數據。

+0

沒錯,'FETCH_ASSOC'返回一個關聯數組 – Dale

+0

謝謝!就是這樣.. – Migz

+0

不客氣 –

1

你想讀他們,如果他們的對象,但PDOStatement::fetchAll返回一個數組,所以你的代碼應該是這樣的:

for ($i = 0; $i < $count; $i++) { 
    $mTheAvatar = $result[$i]['TheAvatar']; 
    $mTheDirection= $result[$i]['TheDirection']; 
    . 
    . 
    . 
    . 
    echo "hello"; 
    echo $mTheAvatar; 
    echo " <- this is avatar"; 
} 

如果你要處理的對象,你應該使用PDOStatement::fetchObject

+0

謝謝,這是def [[...]]我失蹤了 – Migz

0

這應該更好 - 1)它使用foreach; 2)unset(); 3)不同的結構

$stmt = $db->prepare("SELECT * FROM mytable WHERE TheGroup = :SearchName ORDER BY TheTime DESC"); 
$stmt->bindParam(':SearchName', $request, PDO::PARAM_STR); 
$stmt->execute(); 
$results = $stmt->fetchAll(PDO::FETCH_ASSOC); 

if($results){ 

    foreach($results as $result_data) { 

    echo $result_data['TheAvatar']; 

    echo $result_data['TheDirection']; 

    //and so on 

    unset($result_data); 

    } 

} 
else{ 

    echo 'Empty'; 

}