Связь PHP и MySQL в системе bluetronix CMS
В этом руководстве вы создадите собственную таблицу базы данных и свяжете ее с страницей CMS. На практических примерах вы познакомитесь с SQL-командами INSERT, REPLACE, SELECT и UPDATE и узнаете, как выводить значения базы данных на своем веб-сайте с помощью HTML-плейсхолдеров.
Создать страницу примера
Сначала создайте новую примерную страницу для этого учебника.
Например:
PHP MySQL Пример
Страница может сначала быть полностью пустой.
Затем откройте страницу в обычном HTML-редакторе и вставьте любой раздел страницы. Эта HTML-область позже будет использоваться в качестве шаблона для данных, загружаемых из базы данных.
Создать таблицу базы данных
Перед тем как сохранить данные, вам нужна собственная таблица базы данных.
Для этого откройте:
База данных → Новая таблица
Для этого примера мы используем таблицу со столбцами ID, Date, Title, Description и Image.
ID содержит уникальный идентификатор записи. Date сохраняет дату и время. Title содержит заголовок, Description — более длинный текст описания, а Image — имя изображения.
Имена таблиц, столбцов и переменных всегда должны использоваться на английском языке в учебниках для разработчиков.
Открыть PHP-код
После создания таблицы вернитесь на свою примерную страницу.
Откройте там:
PHP Код
Из этой области вы можете напрямую получить доступ к базе данных.
Сохраните данные с помощью INSERT или REPLACE
В первом примере вы сохраняете запись в ранее созданной таблице базы данных.
Сначала установите необходимые переменные PHP.
Пример:
$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";
Эти значения вы можете сохранить с помощью подготовленного выражения MySQL.
Для доступа к базе данных вам всегда следует использовать подготовленные выражения. Таким образом, значения обрабатываются отдельно от самого SQL-запроса.
Пример с REPLACE:
$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

Затем откройте страницу один раз.
После этого откройте:
База данных → Просмотр
Там должен быть виден вновь созданный набор данных.
Разница между INSERT и REPLACE
INSERT добавляет новый набор данных.
Если уже существует набор данных с тем же уникальным идентификатором или тем же первичным ключом, обычный INSERT может вызвать ошибку дубликатного ключа.
REPLACE может быть использован, если необходимо заменить существующий набор данных с тем же уникальным идентификатором.
Для тестовых примеров с фиксированным идентификатором REPLACE часто оказывается более практичным, поскольку страницу можно вызывать несколько раз.
Чтение данных с помощью SELECT
На следующем этапе вы считываете сохранённый набор данных из базы данных.
Пример:
$stmt = $mysqli->prepare("SELECT `Date`, Title, Description, Image FROM ExampleTable WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();
if($row = $result->fetch_assoc()) {
$Date = $row["Date"];
$Title = $row["Title"];
$Description = $row["Description"];
$Image = $row["Image"];
}
Считанные значения затем находятся в переменных $Date, $Title, $Description и $Image.
Свяжите базу данных и $LayoutHTML
Глобальная переменная CMS $LayoutHTML во время процесса рендеринга содержит текущее генерируемое HTML страницы.
Таким образом, вы можете заменить собственные заполнители внутри HTML-кода данными из таблицы MySQL.
Установите плейсхолдеры в HTML-коде
Снова откройте HTML-код вашей примерной страницы.
Содержимое ранее вставленного раздела страницы вы можете теперь заменить собственными заполнителями.
Например:
__MyDate__
__MyTitle__
__MyDescription__
__MyImage__
Упрощённый HTML-пример:
<section>
<div class="container">
<img src="__MyImage__" alt="">
<small>__MyDate__</small>
<h2>__MyTitle__</h2>
<p>__MyDescription__</p>
</div>
</section>

Для этого первого примера MySQL существующие маркировки перевода сначала можно удалить. Это упростит распознавание того, какие содержимое заменяются напрямую с помощью PHP и MySQL.
Вставка значений из базы данных в макет
После того как данные были загружены с помощью SELECT, вы заменяете заполнители внутри $LayoutHTML.
Пример:
$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);
Процесс таким образом выглядит следующим образом:
MySQL-База данных → SELECT → PHP-переменные → str_replace() → $LayoutHTML → готовая веб-страница

Содержимое базы данных непосредственно отображается внутри существующего HTML-макета.
Тестируйте изменения напрямую через базу данных
Откройте:
База данных → Просмотр
Затем отредактируйте существующую запись.
Например, вы можете изменить заголовок с My Title на New My Title.
Также изображение можно изменить с помощью соответствующей BX-Image-Button.
После сохранения и перезагрузки веб-страницы измененные данные будут сразу отображены в макете страницы.
Таким образом, существует прямая связь между:
База данных → PHP → $LayoutHTML → Веб-страница
Измените данные с помощью UPDATE
С помощью UPDATE вы можете прямо через PHP изменить уже существующую запись.
При этом устанавливается условие, какая запись должна быть изменена.
После выполнения обновления вы можете снова загрузить данные с помощью SELECT и затем отобразить их на вашей странице через $LayoutHTML.
Резюме
С помощью PHP и MySQL вы можете сохранять, извлекать и изменять данные в cms bluetronix.
INSERT или REPLACE сохраняют данные, SELECT извлекает данные, а UPDATE изменяет существующие записи.
С помощью $LayoutHTML вы можете затем напрямую интегрировать загруженные данные в существующие HTML-структуры.
Таким образом, содержимое базы данных можно аккуратно соединить с HTML-макетом страницы CMS.
Часто задаваемые вопросы
что часто спрашивают клиенты
Что мне нужно для этого PHP- и MySQL-учебника?
Вам нужен доступ разработчика к cms bluetronix. Кроме того, вы должны уже понимать, как работает процесс рендеринга сайта CMS и какую роль играет переменная $LayoutHTML.
Где я могу создать новую таблицу базы данных?
Откройте в CMS раздел База данных → Новая таблица.
Какие столбцы используются в примере?
В учебнике используются столбцы ID, Date, Title, Description и Image.
Почему мне следует использовать подготовленные выражения?
Подготовленные выражения отделяют переданные значения от самого SQL-оператора и, следовательно, предназначены для работы с базами данных.
В чем разница между INSERT и REPLACE?
INSERT добавляет новую запись. REPLACE может заменить существующую запись с тем же уникальным ID или тем же первичным ключом.
Как извлечь данные из базы данных?
Для этого вы используете оператор SELECT. Загруженные значения можно затем сохранить, например, в PHP-переменных, таких как $Title, $Description или $Image.
Как данные MySQL попадают в HTML страницы?
Сначала вы устанавливаете собственные заполнители в HTML-коде и затем заменяете их с помощью str_replace() внутри $LayoutHTML на загруженные значения из базы данных.
Как я могу проверить, работает ли соединение между базой данных и веб-сайтом?
Откройте База данных → Просмотр, измените существующую запись и затем обновите веб-страницу. Новые значения должны появиться непосредственно в макете страницы.
Для чего используется UPDATE?
С помощью UPDATE вы можете изменить существующую запись напрямую через PHP.
Могу ли я использовать изображения из базы данных в макете страницы?
Да. В примере значение изображения сохраняется в переменной $Image и используется через собственный заполнитель, такой как __MyImage__ в $LayoutHTML.