Php error SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误

Php error SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误,php,mysql,sql,Php,Mysql,Sql,我有一个PHP代码,它从HTML表单中获取数据并插入到SQL表中。但由于错误,我可以这样做: 这是我的密码: <html> <? $name = $_get['name'] ; $mob = $_get['mob'] ; $email = $_get['email'] ; //config $servername = "localhost"; $username = "lozaair_datam"; $password

我有一个PHP代码,它从HTML表单中获取数据并插入到SQL表中。但由于错误,我可以这样做:

这是我的密码:

<html>
<?
    $name = $_get['name'] ;
    $mob = $_get['mob'] ;
    $email = $_get['email'] ;

    //config
    $servername = "localhost";
    $username = "lozaair_datam";
    $password = ".8#l2)S3+d%*";
    //end-config

    //db connect
    try {
        $conn = new PDO("mysql:host=$servername;dbname=lozaair_orders", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


        //data input

        $sql = "INSERT INTO `orders` (`name`, `mob`, `email`) VALUES ($name , $mob , $email )";

        $conn->exec($sql);
        //end- data input


        echo "New record created successfully"; 
    }
    catch(PDOException $e)
    {
        echo $sql . "<br>" . $e->getMessage();
    }
    //end- db connect

    //db close
        $conn = null;
    //end- db close
    ?>
</html>

我尝试了很多方法,但都不起作用

我认为您需要在查询中用单引号括住变量。试试下面的一个:

$sql = "INSERT INTO `orders`(`name`, `mob`, `email`) VALUES('$name', '$mob', '$email')";