Почему php / mysql 'select' не возвращает результаты в ассоциативном массиве?

Я настроил среду AWS Elastic Beanstalk для PHP и добавил RDS DB. Я смог использовать MySQL Workbench для заполнения БД тремя таблицами и одной из таблиц одной строкой.

В PHP я подтвердил, что могу подключиться к БД, и запрос SHOW TABLES возвращает именно то, что я ожидал.

Однако, если я использую SELECT * from Users (одну из таблиц), он возвращает массив с числовым индексом, а не ассоциативный:

$username = mysqli_fetch_array($r, MYSQLI_ASSOC)[0]; // this gives me the value
$username = mysqli_fetch_array($r, MYSQLI_ASSOC)['username']; // this give me null (yes, field spelling correct)

Я также пробовал MYSQLI_BOTH с теми же результатами

А как насчет mysqli_fetch_assoc ($ r)?

Igor Greg 30.03.2021 00:35

Ключи массива чувствительны к регистру. Вы уверены, что имя столбца - username, а не USERNAME или Username?

Barmar 30.03.2021 00:38

Что вы увидите, если сделаете var_dump(mysqli_fetch_array($r, MYSQLI_ASSOC))?

Barmar 30.03.2021 00:39

Я всегда рекомендую не использовать SELECT *. Укажите нужные столбцы явно, тогда вы можете быть уверены, что они будут названы в ассоциативном массиве так, как вы ожидаете.

Barmar 30.03.2021 00:40

Код, который у вас есть, должен работать. Вы, должно быть, делаете что-то не так, о чем нам не говорите. Пожалуйста, создайте минимальный воспроизводимый пример

Dharman 30.03.2021 01:44
1
5
34
0

Другие вопросы по теме