2017-07-05 1 views
2

でOBJをフェッチ:PDOがあまりにも似て定義されたObjectName

PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE 

を私は同じことをやってみたい:

PDO::FETCH_OBJ 

は、私が最初の値に指定されたオブジェクトとして各行を選択することを意味します。

例: - :まず、私がしたいです

test { 
     0: [ 
     'id': 1, 
     'src': 'www.test.de' 
     ] 
    } 

0からidexed

id name url 
1 Test www.test.de 
2 Test2 www.test2.de 

Select name, id, url FROM whatever; 

$processes = $result->fetchAll(PDO::FETCH_OBJ); 

が返すオブジェクトのx

fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP) 

戻り値は、それは私がちょうど2欠点が欲しいほとんどのようにオブジェクトに名前をつけてください(名前を選択すると名前を選択することができます)。私は内部に不要な配列を持っています。

だから私はこれにそれを取得する方法任意のアイデア:あなたは、この使用することができます

test [ 
     'name': 'test', 
     'id': 1, 
     'src': 'www.test.de' 
     ] 
test2 [ 
     'name': 'test2', 
     'id': 2, 
     'src': 'www.test2.de' 
] 

答えて

2

$dbh = new PDO('mysql:dbname=my;host=localhost', 'root', ''); 

$sth = $dbh->prepare("SELECT name, id, name, url FROM data"); 
$sth->execute(); 

var_dump($sth->fetchAll(PDO::FETCH_OBJ | PDO::FETCH_GROUP | PDO::FETCH_UNIQUE)); 

を出力は次のようになります。

array(3) { 
    'test 1' => 
    class stdClass#6 (3) { 
    public $id => 
    string(1) "4" 
    public $name => 
    string(6) "test 1" 
    public $url => 
    string(13) "www.gmail.com" 
    } 
    'test 2' => 
    class stdClass#4 (3) { 
    public $id => 
    string(1) "2" 
    public $name => 
    string(6) "test 2" 
    public $url => 
    string(14) "www.google.com" 
    } 
    'test 3' => 
    class stdClass#5 (3) { 
    public $id => 
    string(1) "3" 
    public $name => 
    string(6) "test 3" 
    public $url => 
    string(21) "www.stackoverflow.com" 
    } 
} 

しかし、気づいたこと:重複する値をname列に追加すると、同じ名前の最後のレコードの値が取得されます。私はこのデータセットを持つテーブルの上に持っている私の例では:

select * from data; 
+----+--------+-----------------------+ 
| id | name | url     | 
+----+--------+-----------------------+ 
| 1 | test 1 | www.ya.ru    | 
| 2 | test 2 | www.google.com  | 
| 3 | test 3 | www.stackoverflow.com | 
| 4 | test 1 | www.gmail.com   | 
+----+--------+-----------------------+ 
4 rows in set (0,00 sec) 

をですから、「テスト1」という名前のオブジェクトでID = 4のレコードからのデータを持っています。

+0

正確に私が必要としていたのは、スタイルの組み合わせを取得することに関するドキュメントが欠けています。ありがとう。 – Doomenik

+0

歓迎です;) –

関連する問題