@raki_parat

В базу данных не отправляются данные которые введены в форме, что делать?

В форме кнопка типа submit, при вводе данных, и нажатия на кнопку, ошибок нет. Но когда проверяю таблицу БД, там только 1 строка с id=0, а другие строки не появляются

php код:

<?php
$login = filter_var(trim($_POST['login']),
FILTER_SANITIZE_STRING);
$name = filter_var(trim($_POST['name']),
FILTER_SANITIZE_STRING);
$password = filter_var(trim($_POST['password']),
FILTER_SANITIZE_STRING);

if(mb_strlen($login) < 5 || mb_strlen($login) > 90) {
echo "Недопустимая длина логина";
exit();
} else if(mb_strlen($name) < 3 || mb_strlen($name) > 50) {
echo "Недопустимая длина имени";
exit();
} else if(mb_strlen($password) < 2 || mb_strlen($password) > 6) {
echo "Недопустимая длина пароля (от 2 до 6 символов)";
exit();
}

$mysql = new mysqli('localhost', 'root', 'root', 'reg');
$mysql->query("INSERT INTO `users` (login, password, name) VALUES('$login', '$password', '$name')");
$mysql->close();
?>
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 2
а другие строки не появляются

Возможно потому что
$mysql->close();
Вы закрыли соединение с БД после же первого запроса.
А у вас цикл.
Закрывать соединение почти никогда не надо (оно закроется само когда выполнится скрипт).
Ну или вынесете закрытие за цикл.

Соединение с БД
$mysqli = new mysqli($hostname, $username, $password, $base);
// Если ошибка - сообщаем что не можем соединиться с БД.
if ($mysqli->connect_errno){echo 'Error. System can not connect to the database.'; exit();}
// Настройки
$mysqli->query("set character_set_client='utf8'");
$mysqli->query("set character_set_results='utf8'");
$mysqli->query("set collation_connection='utf8_general_ci'");


Ваш запрос

$mysql->query("INSERT INTO `users` (`login`, `password`, `name`) VALUES('$login', '$password', '$name')") or die ($mysqli->error);

// Не закрываем соединение с БД!
// $mysql->close(); // Не надо!
Ответ написан
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
У него цикла не видно.
Я думаю его проблема в том, что он не сделал id поле auto_increment, и спрятал ошибки mysql. В итоге ничего не пишется, хотя там ошибка что "айди уже есть". (Судя по тому что он говорит появляется запись с id = 0, если поле auto_increment - 0 невозможно)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы