Выборка PHP PDO возвращает массив?

$GetUid = $dbConnect->prepare("SELECT UID FROM users WHERE username = :username");
$GetUid->execute($RegisterData3);
$UserID = $GetUid->fetch();

почему делает это возвращаемый массив не строка?

var_dump (' $UserID') говорит

array
  'UID' => string '45' (length=2)
  0 => string '45' (length=2)

это должно быть

array
  'UID' => string '45' (length=2)

обновить* что относительно 0? где делает это прибыло из? спасибо за ответы.

5
задан Adam Ramadhan 16 July 2010 в 12:15
поделиться

3 ответа

Вы не указали параметр fetch_style. По умолчанию возвращается FETCH_BOTH, который является массивом. Вот параметры и как их указать: http://php.net/manual/en/pdostatement.fetch.php

EDIT: Кроме того, он всегда возвращает массив, даже если есть только один столбец, потому что строка может содержать несколько атрибутов. Вы можете использовать FETCH_ASSOC и затем указать имя столбца, чтобы получить данные, или, если вы просто используете fetch(), как вы сделали, массив индексируется как по имени столбца, так и по номеру столбца с 0-индексом.

13
ответ дан 18 December 2019 в 09:47
поделиться

Если вы хотите получить только столбец, вам понадобится метод fetchColumn () PDOStatement.

2
ответ дан 18 December 2019 в 09:47
поделиться

Набор результатов извлекается построчно, даже если строка содержит один столбец

2
ответ дан 18 December 2019 в 09:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: