Ошибка синтаксиса делая insert в php используя mysqli

Ошибка, которая выходит у меня, эта:

Ошибка: INSERT INTO lol (пользователь, пароль) ОЦЕНИ ('lol', '$2y 10$ $ L328iO1LneHP06ejOxWT4.grJ1pf1UQAmvbQ6ylp. UvEkdMuKFS/G') You have an ошибка in your SQL syntax; check the учебник that corresponds to your MariaDB server версия for the right syntax to использовал near '�a) ОЦЕНИ ('lol', '$2y 10$ $ L328iO1LneHP06ejOxWT4.grJ1pf1UQAmvbQ6ylp. UvEkdMuKFS /' at line 1

И это код PHP:

<?php 

$servername = "localhost";
$username = "lol";
$password = "lol";
$dbname = "lol";


$con = new mysqli($servername,$username,$password,$dbname);


$usuario = $_POST["usuario"];
$clave =password_hash($_POST["contraseña"],PASSWORD_DEFAULT);
$sql = "INSERT INTO lol(usuario, contraseña)
VALUES('".$usuario."', '".$clave."')";


if ($con->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $con->error;
}

$con->close();

?>
1
задан 17.06.2019, 14:25
1 ответ

Проблема, которую ты переносишь, - благодаря тому, что твоя база данных estГЎ созданная с игрой символов latin1_swedish_ci и твоим PHP estГЎ в utf8.

Для того, чтобы MySQL взялся ее conversiГіn между играми символов, мы должны показывать ему, что cuГЎl мы будем использовать используя mysqli::set_charset(), как я показываю в continuaciГіn:

// Establecemos la conexión con el servidor
$con = new mysqli($servername,$username,$password,$dbname);
// Le indicamos que deseamos usar el juego de caracteres utf8
$con->set_charset('utf8');

С этим pequeГ±o я меняюсь ты aplicaciГіn volverГЎ, чтобы функционировать и, ademГЎs, guardarГЎ правильно любой текст, который ты вводил бы в базу данных начиная с этого момента (вещь, что не funcionarГ - в правильно, если ты это не делаешь).

AdemГЎs, чтобы предотвращать серьезных проблем безопасности связанных с inyecciГіn SQL , deberГ-схвати использовать (например) ее funciГіn mysqli::real_escape_string():

$usuario = $con->escape_string(

Проблема, которую ты переносишь, - благодаря тому, что твоя база данных estГЎ созданная с игрой символов latin1_swedish_ci и твоим PHP estГЎ в utf8.

Для того, чтобы MySQL взялся ее conversiГіn между играми символов, мы должны показывать ему, что cuГЎl мы будем использовать используя mysqli::set_charset(), как я показываю в continuaciГіn:

[110]

С этим pequeГ±o я меняюсь ты aplicaciГіn volverГЎ, чтобы функционировать и, ademГЎs, guardarГЎ правильно любой текст, который ты вводил бы в базу данных начиная с этого момента (вещь, что не funcionarГ - в правильно, если ты это не делаешь).

AdemГЎs, чтобы предотвращать серьезных проблем безопасности связанных с inyecciГіn SQL , deberГ-схвати использовать (например) ее funciГіn mysqli::real_escape_string():

[111]POST["usuario"]); $clave = $con->escape_string(password_hash(

Проблема, которую ты переносишь, - благодаря тому, что твоя база данных estГЎ созданная с игрой символов latin1_swedish_ci и твоим PHP estГЎ в utf8.

Для того, чтобы MySQL взялся ее conversiГіn между играми символов, мы должны показывать ему, что cuГЎl мы будем использовать используя mysqli::set_charset(), как я показываю в continuaciГіn:

[110]

С этим pequeГ±o я меняюсь ты aplicaciГіn volverГЎ, чтобы функционировать и, ademГЎs, guardarГЎ правильно любой текст, который ты вводил бы в базу данных начиная с этого момента (вещь, что не funcionarГ - в правильно, если ты это не делаешь).

AdemГЎs, чтобы предотвращать серьезных проблем безопасности связанных с inyecciГіn SQL , deberГ-схвати использовать (например) ее funciГіn mysqli::real_escape_string():

[111]POST["contraseña"], PASSWORD_DEFAULT)); $sql = " INSERT INTO lol (usuario, contraseña) VALUES('$usuario', '$clave') ";
1
ответ дан 02.12.2019, 06:34