Запись в базу данных mysql на php через форму
Рассмотрим на примере, как создать форму, с помощью которой мы будем делать запросы в базу данных mysql на языке php, используя PDO.
1. Создадим разметку html-формы
<html>
<head>
<title>Запись в БД через форму на php</title>
</head>
<body>
<form method="POST" action="">
<input name="name" type="text" placeholder="Имя"/>
<input name="text" type="text" placeholder="Текст"/>
<input type="submit" value="Отправить"/>
</form>
</body>
</html>
Форма отправляется методом POST и обрабатывается на текущей странице.
2. Создадим таблицу, в которую будем записывать данные
Можно выполнить через SQL в PhpMyAdmin или ручками.
CREATE TABLE `mytable` (
`id` int(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf32 NOT NULL,
`text` text NOT NULL
)
3. Подключимся к базе данных и напишем запрос для записи.
Подключимся к базе данных.
// Переменные с формы
$name = $_POST['name'];
$text = $_POST['text'];
// Параметры для подключения
$db_host = "localhost";
$db_user = "user"; // Логин БД
$db_password = "123"; // Пароль БД
$db_base = 'mybase'; // Имя БД
$db_table = "mytable"; // Имя Таблицы БД
try {
// Подключение к базе данных
$db = new PDO("mysql:host=$db_host;dbname=$db_base", $db_user, $db_password);
// Устанавливаем корректную кодировку
$db->exec("set names utf8");
} catch (PDOException $e) {
// Если есть ошибка соединения, выводим её
print "Ошибка!: " . $e->getMessage() . "<br/>";
}
Кодировку установили, чтобы избежать лишних проблем (не обязательно).
Не забудьте заранее создать таблицу в базе данных с трёмя значениями (id, name, text), подробнее об этом читать здесь.
Далее напишем наш запрос для записи в базу данных и запишем его в переменную.
// Собираем данные для запроса
$data = array( 'name' => $name, 'text' => $text );
// Подготавливаем SQL-запрос
$query = $db->prepare("INSERT INTO $db_table (name, text) values (:name, :text)");
// Выполняем запрос с данными
$query->execute($data);
Здесь мы сначала все наши данные для записи записываем в переменную $data, затем подготавливаем запрос с плейсохледарами (переменные) и выполняем запрос передавая ему данные для заполнения из $data
Создадим небольшую проверку, чтобы знать, выполнился ли наш запрос или нет.
if ($result) {
echo "Информация занесена в базу данных";
}
4. Подключение формы к запросу
Форму создали, к базе подключились и написали запрос, теперь нужно связать всё это.
Форма отправляется методом POST, поэтому мы можем сделать проверку на него, а именно на любое поле формы.
У нас передаются поля с именами "name" и "text", на них мы и сделаем проверку.
Вставим весь наш скрипт в эту проверку:
if (isset($_POST['name']) && isset($_POST['text'])){
// Переменные с формы
$name = $_POST['name'];
$text = $_POST['text'];
// Параметры для подключения
$db_host = "localhost";
$db_user = "user"; // Логин БД
$db_password = "123"; // Пароль БД
$db_base = 'mybase'; // Имя БД
$db_table = "mytable"; // Имя Таблицы БД
try {
// Подключение к базе данных
$db = new PDO("mysql:host=$db_host;dbname=$db_base", $db_user, $db_password);
// Устанавливаем корректную кодировку
$db->exec("set names utf8");
// Собираем данные для запроса
$data = array( 'name' => $name, 'text' => $text );
// Подготавливаем SQL-запрос
$query = $db->prepare("INSERT INTO $db_table (name, text) values (:name, :text)");
// Выполняем запрос с данными
$query->execute($data);
// Запишим в переменую, что запрос отрабтал
$result = true;
} catch (PDOException $e) {
// Если есть ошибка соединения или выполнения запроса, выводим её
print "Ошибка!: " . $e->getMessage() . "<br/>";
}
if ($result) {
echo "Успех. Информация занесена в базу данных";
}
}
То есть, если существует значения "name" и "text" переданные методом POST, то выполняется подключение к БД и запись в таблицу.
Комментарии