Надеюсь, кто-нибудь сможет объяснить проблему, которую я обнаружил при простом соединении между PHP 7 и сервером MariaDB 10.3.32 в Ubuntu 20.04.
Вот данные соединения:
$dsn = "mysql:localhost; dbname=databasename; charset=utf8mb4";
$options = [ PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRORMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
$pdo = new PDO($dsn, "username", "password", $options);
Необходимо удалить $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, а затем получить доступ к каждой строке по ассоциативному заголовку каждого столбца в базе данных. Спасибо.