Надеюсь, кто-нибудь сможет объяснить проблему, которую я обнаружил при простом соединении между PHP 7 и сервером MariaDB 10.3.32 в Ubuntu 20.04.
Вот данные подключения:
$dsn = "mysql:localhost; dbname=databasename; charset=utf8mb4";
$options = [ PDO::ATTR_EMULATE_PREPARES => ложь,
PDO::ATTR_ERRMODE => PDO::ERRORMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
$pdo = новый PDO($dsn, "имя пользователя", "пароль", $options);
$опции
необходимо удалить, прежде чем он будет выводить строковые данные в программу.Без этого я бы просто получил черные ящики, которые, как я полагаю, были неким типом данных, но не строками, которые я искал.
я пробовал комментировать PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC
, но я все еще получаю проблему.
Я обнаружил, что если я закомментирую PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC, я могу использовать цикл for для получения информации с числовым индексом $dvds[0][0]; но я не могу использовать имя столбца базы данных, т.е. $dvds['название']; если я оставлю его без комментариев, я могу получить его с помощью print_r, но я ничего не получаю в цикле for, используя число или ассоциативный индекс. Странный!
Я обнаружил, что не обращался к возвращаемым данным должным образом.
Мне нужно было использовать цикл foreach, а затем получить доступ к каждой строке по ассоциативному заголовку каждого столбца в базе данных. Спасибо.