0

В файл php передаются пустые значения, а после выдает ошибку в неверности синтаксиса SQL. Если же захардкодить, то все становится окей.

Использую JS для передачи информации. вот код:

<script>
    $(function(){

        $('.open-popup').on('click',function(){
            $('.popup-container').css('display','flex');
        });
        $('.close-button').on('click',function(){
            $('.popup-container').css('display','none');
        });

        $('.send-button').on('click',function(){
            let request={
                'login':$('input[login="login"]').val(),
                'pass':$('input[pass="pass"]').val()

            };
            $.POST('api.php',request,function(response){
                if(response=='1'){
                    $('input[login="login"]').val('');
                    $('input[pass="pass"]').val('');
                    $('.popup-container').css('display','none');
                }
            });
        });
    });

И вот код в api.php

<?php
$login=$_POST['login'];
$pass=$_POST['pass'];
$status= '3';
$conn = new mysqli("localhost", "username", "1111", "cars");
if($conn->connect_error){
    die("Ошибка: " . $conn->connect_error);
}
$sql = "INSERT INTO authorized(Login, Password,Status) VALUES ($login,$pass,$status)";
if($conn->query($sql)){
    echo '1';
} else{
    echo "Ошибка: " . $conn->error;
}
$conn->close();
?>

И соответственно ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,3)' at line 1

Eliz
  • 123

1 Answers1

0

Предположу, что хардокодишь ты таким образом, что значения в районе VALUES выглядят как строки, т.е. 'test', '123', '2'. Однако при вставке непосредственно переменных, кавычки ты не ставишь, как в случае с хардкодом. Не надо думать, что если переменные - строки, то кавычки ставить не надо

  • Да, но в БД добавляются пустые значения. То есть id=30 Login= Password= Status=3 – Eliz Jul 12 '22 at 12:53
  • Значит пустые и прилетели....... если синтаксическая ошибка пропала - я был прав. Вопрос отвечен.....а почему пустые - есть отладка на клиенте https://ru.stackoverflow.com/q/701137/191482 и на бэке https://ru.stackoverflow.com/q/701142/191482 и консоль разработчика на влкадке network – Алексей Шиманский Jul 12 '22 at 12:56