PHP создать пользователя в таблице mysql - PullRequest
0 голосов
/ 04 апреля 2020
if ($stmt = $connection->prepare('INSERT INTO users (name, id, password, email, city, avatar, about, activation_code) VALUES (?, ?, ?, ?, ?, ?, ?, ?)')) {
        $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
        $uniqid = uniqid();
        $stmt->bind_param('ssssssss', $_POST['name'], $_POST['id'], $password, $email, $_POST['city'], $_POST['avatar'], $_POST['about'], $uniqid);
        $stmt->execute();
        $stmt->store_result();
        echo 'Account's created';
    } else {
        echo 'Error';
    }

Эта часть кода не создает пользователя в myqsl db. Но если я Этот код:

$stmt->bind_param('ssssssss', $_POST['name'], $_POST['id'], $password, $email, $_POST['city'], $_POST['avatar'], $_POST['about'], $uniqid);

Заменить на:

$stmt->bind_param('ssssssss', $_POST['name'], $_POST['id'], $email, $password, $_POST['city'], $_POST['avatar'], $_POST['about'], $uniqid);

Это создает пользователя, но в таблице в электронной почте есть пароль, а в пароле - электронная почта. Как я могу это исправить ???

Ответы [ 2 ]

2 голосов
/ 04 апреля 2020

Вам нужно проверить что говорит об ошибке MySQL .

Не увидев определение вашей таблицы (вы действительно должны опубликовать это тоже), я могу только догадываться, что пароль, который вы используете - ha sh - будучи PK2DBF ha sh, слишком длинный для поля пароля.

Вы, вероятно, зарезервировали что-то вроде 64 символов для электронной почты и что Я знаю, 16 символов для пароля. Но пароль ha sh длиннее. Поэтому, если вы вставите пароль в столбец электронной почты, который ему подходит, в противном случае это не так.

В поле определения столбца пароля следует использовать что-то вроде VARCHAR(200).

0 голосов
/ 04 апреля 2020

проверьте sql datatypes столбцов электронной почты и пароля и их соответствующие длины, сгенерированный ha sh, вероятно, слишком длинный или столбец электронной почты не допускает определенные входные данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...