#php #mysql #mysqli
#php #mysql #mysqli
Вопрос:
Я полный новичок и читаю «Изучение PHP, MySQL, JavaScript и CSS» Робина Никсона, и в конце есть пример под названием «Гнездо малиновки«, который
Проектирование сайта социальной сети
Прежде чем писать какой-либо код, я сел и составил список вещей, которые, по моему мнению, были необходимы для такого сайта. К ним относятся:
- Процесс регистрации
- Форма входа в систему
- Средство выхода из системы
- Управление сеансом
- Профили пользователей с загруженными эскизами
- Каталог участников
- Добавление пользователей в друзья
- Публичные и личные сообщения между участниками
- Как оформить проект
Я решил назвать проект Robin’s Nest, но вам нужно изменить только одну строку кода (в functions.php ), чтобы изменить это на имя по вашему выбору.
Я хотел бы попробовать проверить это, но не знаю, как это сделать. Файлы кода примера размещены на OReilly. Кроме того, на Github есть его улучшенная версия.
<?php //config.php
$appname = 'Parrot';
$dbhost = 'localhost';
$dbname = 'parrot';
$dbuser = 'root';
$dbpass = 'mysql';
$home_url = '/';
Когда я получаю доступ к index.php на моих ampps / www я получаю:
Warning: mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] in C:Program FilesAmppswwwparrotinit.php on line 6
Warning: mysqli::__construct(): (HY000/2054): The server requested authentication method unknown to the client in C:Program FilesAmppswwwparrotinit.php on line 6
The server requested authentication method unknown to the client
Строка 6 из init.php является
$connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
Комментарии:
1. К сожалению, эта книга действительно не лучший ресурс для изучения. Все, что связано с написанием вашей собственной «формы входа», чрезвычайно рискованно и не подходит для написания готовых к производству сайтов, которые вы действительно можете использовать.
2. 🐘 Если вы только начинаете работать с PHP и хотите создавать приложения, я бы настоятельно рекомендовал изучить различные фреймворки разработки , чтобы увидеть, сможете ли вы найти тот, который соответствует вашему стилю и потребностям. Они бывают разных видов: от легких, таких как Fat-Free Framework , до гораздо более полных, таких как Laravel . Они дают вам конкретные примеры для работы и рекомендации по написанию кода и организации файлов вашего проекта.
3. @tadman Я просто новичок и не ищу передовой практики, просто учусь. Можете ли вы помочь мне довести этот пример до конца?
4. Первый шаг: справедливо ли это для тривиальных программ на PHP или только для тех, которые обращаются к базе данных? Второй шаг: имеет ли какой-либо доступ к базе данных за пределами PHP такую же задержку?
5. Тривиальный , поскольку почти никакой код не поможет сузить проблему. Не тестируйте загрузку чего-то, что на самом деле содержит в себе кучу операций.
Ответ №1:
Вам нужно установить пользователя и пароль.
// config.php
<?php
$appname = 'Parrot';
$dbhost = 'localhost';
$dbname = 'parrot';
$dbuser = getenv('LOCAL_DB_USER'); // HERE
$dbpass = getenv('LOCAL_DB_PASS'); // HERE
$home_url = '/';
Это настройки среды. Вы также можете просто использовать свои строки напрямую.
// config.php
<?php
$appname = 'Parrot';
$dbhost = 'localhost';
$dbname = 'parrot';
$dbuser = "USER"; // HERE
$dbpass = "PASSWORD"; // HERE
$home_url = '/';
Комментарии:
1. спасибо, поэтому я меняю $dbuser = ‘root’; и #dbpass = ‘mysql’; если это значение по умолчанию? Как насчет $dbname = ‘parrot’? Нужно ли мне сначала создать базу данных с именем ‘parrot’ на phpmyadmin?
2. @caltonhill или измените $dbname на db по вашему выбору
3. @Strawberry, это не сработало, потому что порт для ampps mysql установлен на 3307, поскольку у меня есть другой mysql на 3306. Теперь я добавил $port= ‘3307’ к вызову mysqli, и он работает.