сохранение данных в базе данных php

Сохранение сообщений в базе данных

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

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

Многие хостинговые компании используют именно эту утилиту для работы с базами данных, поэтому мы тоже будем использовать её. О том, как подключиться к phpMyAdmin, узнавайте у вашего хостера.

Чтобы ввести SQL-запрос в phpMyAdmin, нужно нажать сначала кнопку SQL и в текстовом поле ввести команду. Чтобы выполнить запрос, нужно нажать кнопку OK.

Но мы не будем вводить запросы вручную, так как все необходимые команды будет выполнять PHP-код.

Чтобы вставить новые данные в таблицу базы данных, используется команда INSERT INTO:

Ключевое слово INSERT INTO сообщает, что мы собираемся вставить данные.

Далее идёт имя таблицы, в которую нужно вставить данные.

Потом в скобках перечисляются имена колонок, в которых требуется вставка данных. Не всегда бывает необходимость вставлять данные во все колонки. Не обязательно указывать порядок колонок, как вы создавали в базе. Но обычно стараются придерживаться такого же порядка, чтобы не путаться.

После идёт ключевое слово VALUES, которое сообщает, что далее последует список значений для колонок.

И, наконец, в скобках идёт список данных через запятую, которые нужно вставить в колонки. Количество данных должно совпадать с количеством колонок. А также важен порядок. Первые данные попадут в первую колонку и т.д.

Таблица для сохранения сообщений с сайта может выглядеть следующим образом:

first_namelast_namewhenemailmsg

Тогда запрос можно составить таким образом:

Для начала создадим таблицу abduction (Похищение) с помощью phpMyAdmin. При создании таблицы указывается число столбцов. Затем выводится страница настройки таблицы, в которой нужно указать тип данных и другую информацию.

Создадим таблицу в соответствии с скриптом:

Теперь мы можем вручную добавлять данные в таблицу при помощи команды INSERT INTO. Но это не совсем удобно. Нужна автоматизация. PHP позволяет самостоятельно добавлять данные в базу данных, когда пользователь будет заполнять форму.

Осуществление MySQL-запроса с помощью РНР-сценария требует от вас:

Существуют три основные РНР-функции, используемые для обмена информацией с базой данных MySQL:

Кстати, существуют старые функции с префиксом mysql_, которые не следует использовать. Буква i обозначает «улучшенный» (improved).

Функция mysqli_connect() открывает соединение с базой данных MySQL, используя информацию, содержащуюся в четырех параметрах. Укажите адрес размещения сервера (1), имя пользователя (2) и его пароль (3), а также имя базы данных, так как соединение осуществляется с конкретной базой. Как правило, первые три параметра выдаются хостером. Имя базы данных можно задать самостоятельно или тоже выдаётся хостером. Все параметры являются строками и их следует заключить в кавычки. Существует аналогичная функция с первыми тремя параметрами без указания имени базы данных в четвёртом. В этом случае вы можете указать имя базы данных в функции mysqli_select().

Функция mysqli_query() осуществляет запрос к базе данных MySQL (добавление или извлечение данных). Очень часто для имени переменной используют $query.

Сам запрос в методе mysqli_query() может быть очень длинным. Для удобства строку можно разбить для большей читаемости на несколько маленьких строк. Для склейки строк в PHP используется символ точки (.).

Функция mysqli_close() закрывает соединение с базой данных. Если вы не закроете соединение, то ничего страшного не произойдёт. Но сервер баз данных позволяет иметь несколько соединений, работающих одновременно. И при сложном проекте незакрытые соединения, которые вам больше не нужны, будут вызывать тормоза.

Для обработки ошибок можно использовать функцию die(). Функция прерывает ход выполнения сценария и выводит сообщение о коде, который выполнить не удалось. Если что-то не так с одним из четырех аргументов, необходимых для соединения в функции mysqli_connect(), или сервер баз данных не может быть найден, функция die() останавливает ход выполнения сценария и выводит сообщение об ошибке, которое передается ей в качестве аргумента в скобках.

Перепишем пример, который вместо отсылки письма будет добавлять запись в базу данных.

Код будет выглядеть следующим образом (для файла report.php).

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

Источник

Сохранение изображений в базе данных MySQL

В этой статье я расскажу, как сохранять двоичные данные, такие как изображения в базе данных MySQL. Вы узнаете, как передать данные через HTML-форму в базу данных, извлекать и выводить их пользователю.

Прежде всего, Вы должны создать новую базу данных, для хранения бинарных данных. Для примера используется следующая таблица. Зайдите в phpMyAdmin, скопируйте и вставьте ниже приведённый код:

Пример php скрипта для сохранения данных в базе данных

При выполнении скрипта Вы увидите простую html форму. Для выбора файла (например, изображение) используйте кнопку «Обзор». Затем нажмите кнопку «Отправить». После загрузки файла на веб-сервер скрипт сообщит вам его идентификатор базы данных (ID). ID необходим для получения доступа к информации (при помощи следующего скрипта). Пример php скрипта для вывода изображений в браузер Скрипт getdata.php – это пример скрипта, который извлекает двоичную информацию из базы данных и передает её непосредственно пользователю. getdata.php

Поскольку скрипту необходимо «знать», который файл извлекать, в качестве параметра необходимо указать его ID. Например: Файл сохранен в базе данных под ID 2. Для получения этого файла необходимо вызвать:

Если в базе данных сохранены изображения, на вашей веб-странице можно использовать скрипт getdata, как например : Например: В базе данных вы сохранили изображение как ID 3 и хотите, чтобы оно отобразилось на вашей веб-странице. Для этого воспользуйтесь следующим кодом:

Пару полезных советов.

Как сохранить файл, размер которого больше 2 Mб?

Для загрузки и сохранения файлов, чей размер превышает 2 Мб, необходимо внести несколько изменений в скрипт и php/sql настройки в связи с установленными по умолчанию ограничениями. Для хранения файлов размером 2 Мб следует сделать следующее:

Внесите изменения в скрипт store.php. Поменяйте значение MAX_FILE_SIZE на 24000000;

По умолчанию в mysql можно импортировать файлы размером не более 2 Мб. Чтобы снять ограничения размера пакета в mysql, выполните слудующие действия. Откройте файл настройки my.ini, измените строчку innodb_additional_mem_pool_size = 24M

Чтобы изменения вступили в силу, перезагрузите веб сервер Apache и сервер базы данных MySQL.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *