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

时间:2017-08-22 09:18:59

标签: php mysql

我正在尝试使用查询从表单中插入数据。查询(如下)有一个WHERE子句,用于从visitorystem.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'附近使用,SELECT positionid FROM visitorystem.position WHERE   位于第2行的LIKE'%inf'

2 个答案:

答案 0 :(得分:4)

将您的查询更改为:

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

答案 1 :(得分:2)

首先,了解准备好的语句以防止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周围的单引号,因为它是数字