Как записать данные из формы в базу данных mysql? PHP 7
Сколько уже не перепробовал с разных сайтов, не хочет записывать в мою БД((( Помогите плиз, данные от БД такие Хост: localhost Пользователь: 1 Пароль: 1 Имя БД: vk2 Имя таблицы: users Нужно занести в бд: id, login, password
Ответы (2 шт):
Автор решения: Vadim
→ Ссылка
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('127.0.0.1', '1', '1', 'vk2');
$mysqli->set_charset('utf8mb4');
$mysqli->query("
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`test` varchar(250) NOT NULL DEFAULT ''
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
");
$mysqli->query("
INSERT INTO test VALUES(
NULL,
'test'
)
");
Автор решения: Ипатьев
→ Ссылка
Дополню ответ колеги для случая, когда данные для запроса берутся из переменных
<?php
include 'db.php';
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$email = $_POST['email'];
$sql = "INSERT INTO users (email, password) VALUES (?,?)";
$stmt= $conn->prepare($sql);
$stmt->bind_param("ss", $email, $password);
$stmt->execute();
$id = $mysqli->isert_id;
Что здесь происходит?
- Код соединения не стоит писать в каждом скрипте, его лучше положить в отдельный файл и инклюдить
- Получаем переменные
$emailи$passwordдля вставки - Создаем запрос, в котором на месте реальных данных стоят знаки вопроса
- Подготавливаем его
- Привязываем к нему переменные функцией bind_param, где первым параметром идёт строка из букв "s", в которой количество букв равно количеству переменных, а дальше - сами переменные
- Выполняем
- Получаем id