var_dump ($ sth-> fetchAll (PDO :: FETCH_COLUMN | PDO :: FETCH_GROUP)); не работает, как ожидалось - PullRequest
0 голосов
/ 10 апреля 2020

кодов здесь:

<?php
include_once('PDOconnect.mysql.php');
$pdo = new PDO($dsn, $user, $pwd) or die('mysql connection failed');
$query = "select * from tb_user";
$result = $pdo->prepare($query);
$result->execute();
var_dump($result->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

выход здесь:

array(3) {
    [1]=> array(1) {
        [0]=> string(8) "tomorrow"
    }
    [2]=> array(1) {
        [0]=> string(8) "xiaoming"
    }
    [3]=> array(1) {
        [0]=> string(8) "xiaoming"
    }
}

Стол

+----+----------+---------+---------------------+-----------------------+
| id | user     | pwd     | createtime          | address               |
+----+----------+---------+---------------------+-----------------------+
|  1 | tomorrow | 111     | 2015-06-20 18:10:02 | Adelaide              |
|  2 | xiaoming | 222     | 2020-04-08 18:30:02 | Unknown city          |
|  3 | xiaoming | 1112131 | 2020-04-08 21:40:12 | Where                 |
+----+----------+---------+---------------------+-----------------------+

Я без ума от этого
Спасибо большое много, если ты сможешь спасти меня от отчаяния

1 Ответ

0 голосов
/ 10 апреля 2020

Все работает правильно.

Как указано , - PDO::FETCH_COLUMN|PDO::FETCH_GROUP используется для:

Для возврата ассоциативного массива, сгруппированного по значениям указанного столбца

В вашем случае - первый выбранный столбец id, поэтому ваши данные сгруппированы по id и id значение равно ключ массива .

И согласно этот комментарий :

По умолчанию результаты группируются по первому столбцу (индекс 0), а второй столбец (индекс 1) возвращается

В вашем случае - первый столбец - id, а второй - user. Итак, еще раз - все правильно .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...