Reputation: 22810
$GetUid = $dbConnect->prepare("SELECT UID FROM users WHERE username = :username");
$GetUid->execute($RegisterData3);
$UserID = $GetUid->fetch();
why does it return array not a string ?
var_dump('$UserID') says
array
'UID' => string '45' (length=2)
0 => string '45' (length=2)
it should be
array
'UID' => string '45' (length=2)
update* what about the 0 ? where does it came from ? thanks for the replies.
Upvotes: 5
Views: 15012
Reputation: 2404
You didn't specify a fetch_style
parameter. It returns FETCH_BOTH
by default, which is an array. Here are the options and how to specify it:
http://php.net/manual/en/pdostatement.fetch.php
EDIT: Also, it will always return an array, even if there's only one column, because a row can contain multiple attributes. You can use FETCH_ASSOC
and then specify your column name to get the data, or, if you just use fetch()
like you did, the array is indexed by both the column name and the 0-indexed column number.
Upvotes: 14
Reputation: 87
The resultset is fetched line by line, even if the line contains a single column
Upvotes: 2
Reputation: 3760
If you want to get just the column, you need the fetchColumn() method of PDOStatement.
Upvotes: 2