source

SQL 구문에 오류가 있습니다. 사용 중인 MariaDB 서버 버전에 해당하는 설명서에서 nea를 사용하는 올바른 구문을 확인하십시오.

gigabyte 2022. 9. 17. 09:56
반응형

SQL 구문에 오류가 있습니다. 사용 중인 MariaDB 서버 버전에 해당하는 설명서에서 nea를 사용하는 올바른 구문을 확인하십시오.

에러가 표시된다//ERROR

ERRORINSERT INTO new_comp_reg (phno , fullname , address , dept , desc) VALUES ('','','','','') You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'desc) VALUES ('','','' ,'','')' at line 1

PHP

<?php

    $servername = 'mysql.hostinger.in';
    $username = '';
    $password = '';
    $dbname = 'u424351292_icrcm';

    if(isset($_POST['submit']))
    {
        $phone_no = $_POST['phno'];
        $full_name = $_POST['fullname'];
        $location = $_POST['address'];
        $department = $_POST['dept'];
        $description = $_POST['desc'];
    }

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

        if($conn->connect_error)
        {
            die("Connection Failed" . $conn->connect_error);
        }

        $sql = "INSERT INTO new_comp_reg (phno , fullname , address , dept , desc)  VALUES ('$phone_no' , '$full_name' , '$location' , '$department' , '$description')";

        if($conn->query($sql) === TRUE)
        {
            echo "Complaint Registered";
        }
        else
        {
            echo "ERROR".$sql."<br>".$conn->error;
        }

    $conn->close();
    ?>

//에러

ERRORINSERT INTO new_comp_reg (phno , fullname , address , dept , desc) VALUES ('','','','','') You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'desc) VALUES ('','','' ,'','')' at line 1

desc는 MySQL에서 예약된 키워드이며 백틱으로 이스케이프해야 합니다.

INSERT INTO new_comp_reg (..., `desc`)  VALUES (...)

또는 열 이름을 다음과 같이 변경합니다.description예를 들어.

그런데 구문 오류 및 SQL 주입을 초래할 수 있는 사용자 입력을 피할 수 없습니다.준비 스테이트먼트를 사용합니다.

if(isset($_POST['submit']))
{
    $phone_no = $_POST['phno'];
    $full_name = $_POST['fullname'];
    $location = $_POST['address'];
    $department = $_POST['dept'];
    $description = $_POST['desc'];
}

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

    if($conn->connect_error)
    {
        die("Connection Failed" . $conn->connect_error);
    }

    $sql = "INSERT INTO new_comp_reg VALUES ('$phone_no' , '$full_name' , '$location' , '$department' , '$description')";

    if($conn->query($sql) === TRUE)
    {
        echo "Complaint Registered";`enter code here`
    }
    else
    {
        echo "ERROR".$sql."<br>".$conn->error;
    }

$conn->close();
?>

라고 말할 수 있을 것 같아요

$sql = "INSERT INTO new_comp_reg (phno , fullname , address , dept , desc)  VALUES ('".mysql_real_escape_string($phone_no)."' , '".mysql_real_escape_string($full_name)"' , '".mysql_real_escape_string($location)"' , '".mysql_real_escape_string($department)"' , '".mysql_real_escape_string($description)"')";

이렇게 하면 실제로 보호가 향상됩니다.또한 열 이름을 확인하세요. 참조가 잘못되었을 수 있습니다.

언급URL : https://stackoverflow.com/questions/34321222/you-have-an-error-in-your-sql-syntax-check-the-manual-that-corresponds-to-your

반응형