也类似:
PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE
我想做同样的事情:
PDO::FETCH_OBJ
表示我想选择每一行作为第一个值命名的对象。
示例:
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);
返回0 - x
中的对象fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP)
几乎就像我只想要2个缺点一样返回它:
test {
0: [
'id': 1,
'src': 'www.test.de'
]
}
首先,我想在对象中保留名称(可以选择(选择名称,名称......),我内部有不必要的数组。
所以任何想法我如何得到它:
test [
'name': 'test',
'id': 1,
'src': 'www.test.de'
]
test2 [
'name': 'test2',
'id': 2,
'src': 'www.test2.de'
]
答案 0 :(得分: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)
因此,你在名为&#34的对象中有ID = 4的记录中的数据;测试1"。