我正在尝试使用查询从表单中插入数据。查询(如下)有一个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'
答案 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
周围的单引号,因为它是数字