Рейтинг:0

PHP-соединение с Maria DB

флаг lk

Надеюсь, кто-нибудь сможет объяснить проблему, которую я обнаружил при простом соединении между 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, а затем получить доступ к каждой строке по ассоциативному заголовку каждого столбца в базе данных. Спасибо.

Mike G avatar
флаг lk
он должен читать $dsn = "mysql:host=localhost; dbname=databasename;charset=utf8mb4";
Mike G avatar
флаг lk
Я обнаружил, что если я закомментирую PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC, я могу использовать цикл for для получения информации с числовым индексом $dvds[0][0]; но я не могу использовать имя столбца базы данных, т.е. $dvds['название']; если я оставлю его без комментариев, я могу получить его с помощью print_r, но я ничего не получаю в цикле for, используя число или ассоциативный индекс. Странный!
Рейтинг:0
флаг lk

После недели попыток я наконец обнаружил, что проблема заключалась в том, что код CSS имел черный фон всех таблиц, а текст был черным, поэтому ничего не было видно.Я не могу в это поверить, но это было проблемой с самого начала. Я чувствую себя глупо, публикуя это, но, возможно, это поможет кому-то еще. Спасибо.

Рейтинг:-1
флаг ec

возможно ли, что вы пропали без вести хост = на ваше $dsn назначение?

нравиться:

$dsn = "mysql:host=localhost; dbname=databasename; charset=utf8mb4";
Mike G avatar
флаг lk
Похоже, это не проблема, потому что, когда я комментирую параметры, соединение работает и предоставляет ожидаемые данные. Спасибо за ваше предложение.
Mike G avatar
флаг lk
Когда я набрал вопрос, я забыл ввести хост, но он есть в строке программы. Спасибо, что указали на это. Я до сих пор не знаю, почему варианты не правильные. Спасибо

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.