2012-09-13 88 views
0

我試圖把一個MySQL查詢結果爲字符串 我試圖找到一個答案,但所有的類似的帖子都拿到子查詢答案,而這並不是我想要做。試圖把一個MySQL的結果轉換成字符串

例如

+----------------------------------+ 
    |   Fruits_tbl   | 
    +----+---------+---------+---------+ 
    | ID | Fruit | Color | Number | 
    +----+---------+---------+---------+ 
    | 1 | Orange | Orange | 3 | 
    | 2 | Apple | Red | 5 | 
    +----+---------+---------+---------+ 



    $sql = "select Fruits,Color,Number from Fruits_tbl where ID = 2"; 
    $result = $pdo->query($sql); 
    $row = $result->fetch(); 
    print_r($row); 

這會給我類似
陣列([0] => 「蘋果」,[1] => 「紅」,[2] => 「5」, [水果] => 「蘋果」,[顏色] => 「紅」,[數字] => 「5」)

破滅會給我的每個
我想只需要一個字符串=「蘋果2個,紅5"

我目前擁有的是

$string = $row['Fruit'].", ".$row['Color'].", ".$row['Number'] 

正如你所看到的那樣很乏味。
有什麼樣破滅,但只返回索引數組或東西嗎?

回答

2

您可以通過修改fetch得到的只是一個關聯數組:

$row = $result->fetch(PDO::FETCH_ASSOC); 

或者,你可以得到一個列表:

$row = $result->fetch(PDO::FETCH_NUM); 

無論是那些可以被引爆單值,並且不會包含array_unique()的開銷。

+0

不錯,趕上那裏,+1 – wesside

+0

啊,永遠不知道你可以這樣取。我是否應該使用普通查詢來獲取這個數據呢?就像多行表中的select *一樣? – Soujirou

1

$row[Fruit].", ".$row[Color]必須$row['Fruit'].", ".$row['Color']

我誤解你想幹什麼。

使用array_unique()和破滅他們。

$string = rtrim(implode(',', array_unique($your_array)),','); 
+0

對不起,我輸入了一個離我的頭,離開了引號 – Soujirou

+0

感謝!這正是我正在尋找的 – Soujirou

+0

@ user1583432這有點低效,因爲它需要存儲兩次數據,然後使用array_unique對其進行分配。修改您的抓取,並且不需要使用第二個函數。換句話說它的工作原理,但它是相當的hackish,代碼是有點難以閱讀。這裏的順序也可能有點不合適。 – ernie

相關問題