Задать вопрос

Как исправить ошибку при хэшировании?

<?php
// создать подключение к базе данных
require_once 'connection.php'; // подключаем скрипт
 
// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database) 
    or die("Ошибка " . mysqli_error($link));

$username = $_POST["username"];
$password = $_POST["password"];
	
$passwordHash = sha1($_POST['password']);

echo $password.'<br>';
echo $passwordHash.'<br>';
echo $username.'<br>';
$sql = 'INSERT INTO user (username,passwordHash) VALUES (?,?)';
$result = $link->query($sql, array($_POST['username'], $passwordHash));

?>


У меня идет ошибка здесь: $result = $link->query($sql, array($_POST['username'], $passwordHash));
Ошибка Warning: mysqli::query() expects parameter 2 to be long, array given in C:\OpenServer\domains\hashParol\create.php on line 27
И не заносятся данные в базу данных
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Кроме неправильных параметров при вызове mysqli->query рекомендую почитать про само хеширование: php.net/manual/ru/faq.passwords.php#faq.passwords....
Ответ написан
Комментировать
Abdusalamov
@Abdusalamov
Front-end разработчик
Неправильно переданы аргументы в mysqli_connect::query.
php.net/manual/en/mysqli.query.php

Вы должны передать в нее заранее подготовленный запрос.
Навскидку, для подготовки запроса в том формате, в котором вы пробуете это делать, вам подойдет mysqli_prepare со всеми вытекающими.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы