PHP PDO - почему результат FETCH_ASSO () для LAST_INSERT_ID () не проиндексирован с именем столбца? - PullRequest
1 голос
/ 10 июня 2011

All

У меня есть код PHP PDO, который выглядит следующим образом:

<?php
 ...
 $query=$dbh->prepare("SELECT LAST_INSERT_ID()");
 $query->execute();
 $result=$query->fetch(PDO::FETCH_ASSOC); // returns an array indexed by column name as returned in result set - here column name is "userID" in the DB
 print_r($result);
 ...

Когда я запускаю это, результат print_r($result); будет что-то вроде Array([LAST_INSERT_ID()]=>18). Почему массив индексируется по [LAST_INSERT_ID()], а не по userID, то есть имени моего столбца в таблице данных? В руководстве по PHP написано:

PDO :: FETCH_ASSOC: возвращает массив, проиндексированный по имени столбца, как возвращено в вашем наборе результатов

Чего мне не хватает?

Спасибо

JDelage

Ответы [ 2 ]

4 голосов
/ 10 июня 2011

Поскольку вы выбираете не столбец, а результат этой функции MySQL.

Вы можете использовать ...

SELECT LAST_INSERT_ID() AS `userID`
2 голосов
/ 10 июня 2011

Вы также можете использовать PDO :: LastInsertId () вместо

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