PHP:WHERE子句附近的查询(MySQL)错误

PHP:WHERE子句附近的查询(MySQL)错误,php,mysql,Php,Mysql,我试图使用查询从表单中插入数据。下面的查询有一个WHERE子句,用于从visitorsystem.position中选择位置 $query = "INSERT INTO visitorsystem.employee(idNumber,name,surname,position,email) VALUES ('$idNumber','$name','$surname',SELECT positionid FROM visitors

我试图使用查询从表单中插入数据。下面的查询有一个WHERE子句,用于从visitorsystem.position中选择位置

 $query = "INSERT INTO visitorsystem.employee(idNumber,name,surname,position,email)
                                 VALUES ('$idNumber','$name','$surname',SELECT positionid FROM visitorsystem.position WHERE position LIKE '%$position%','$email')";
执行时,给出以下错误。我尝试在SELECT…WHERE子句周围添加引号和单引号,但没有成功。如果问题出在查询本身或SELECT…WHERE子句上,您有什么想法吗

查询错误:您的SQL语法有错误;检查手册 对应于MySQL服务器版本的正确语法 在“fdsf”附近使用,从visitorsystem.position中选择positionid 第2行类似于“%inf”的位置

将查询更改为:

$query = "INSERT INTO visitorsystem.employee(idNumber,name,surname,position,email)
         SELECT '$idNumber','$name','$surname',positionid,'$email' FROM visitorsystem.position WHERE position LIKE '%$position%'";

首先,了解防止SQL注入的预处理语句

其次,应将所有值添加到select语句中:

query = "INSERT INTO visitorsystem.employee(idNumber,name,surname,position,email)
  SELECT $idNumber,'$name','$surname',positionid,'$email' FROM visitorsystem.position WHERE position LIKE '%$position%'";

另外,您不需要在$idNumber附近使用单引号,因为它是数字的

您似乎错过了$Names中的单引号。在我写这个问题时,这只是一个输入错误,感谢您指出:您可以删除关于单引号的hine