phpmysqlmysqli

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 '1'


if ($_SERVER["REQUEST_METHOD"]=="POST") {
            $updatedate=$_POST['date'];
            $updateday=$_POST['day'];
            $updateplace=$_POST['place'];
            $updatehighlight=$_POST['highlight'];
            $updatediscription=$_POST['discription'];
            $sqlupdate="UPDATE $tableselect SET entrydate='$updatedate',day='$updateday',place='$updateplace',highlight='$updatehighlight',discription='$updatediscription' WHERE id ='$getid'";
            $sqlquery=mysqli_query($db,$sqlupdate);
            if (!mysqli_query($db,$sqlquery)) {
                    echo "error " .$sqlquery. "<br>" . mysqli_error($db);
                }
        }

it showing this error:

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 '1' at line 1

How can I solve this error?


Solution

  • Real simple, you're running the query function twice, that's why you're getting 1.

    So

    $sqlquery=mysqli_query($db,$sqlupdate);
                if (!mysqli_query($db,$sqlquery)) {...}
    

    needs to be changed to just

    $sqlquery=mysqli_query($db,$sqlupdate);
                if(!$sqlquery){...}
    

    The first gets executed, and the (if)! operator will also trigger the query function since it was TRUE, as in "(if)not failing".

    "For other successful queries mysqli_query() will return TRUE."

    Parametrize your query also, you're open to an SQL injection.