$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? где делает это прибыло из? спасибо за ответы.
Вы не указали параметр fetch_style
. По умолчанию возвращается FETCH_BOTH
, который является массивом. Вот параметры и как их указать:
http://php.net/manual/en/pdostatement.fetch.php
EDIT: Кроме того, он всегда возвращает массив, даже если есть только один столбец, потому что строка может содержать несколько атрибутов. Вы можете использовать FETCH_ASSOC
и затем указать имя столбца, чтобы получить данные, или, если вы просто используете fetch()
, как вы сделали, массив индексируется как по имени столбца, так и по номеру столбца с 0-индексом.
Если вы хотите получить только столбец, вам понадобится метод fetchColumn () PDOStatement.
Набор результатов извлекается построчно, даже если строка содержит один столбец