2017-08-22 42 views
-3

我想從表單插入數據與使用查詢。查詢(下面)有一個WHERE子句從visitorystem.position中選擇一個位置。PHP:錯誤查詢(MySQL)附近WHERE子句

$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 visitorsystem.position WHERE 位置LIKE '%INF' 使用第2行

+0

看來,你已經在$名稱 –

回答

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%'"; 

而且你不需要singlequotes各地$idNumber,因爲它是數字

+0

@Chanter不客氣 – Jens

4

更改手動 您的查詢爲:

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

錯過了單引號對不起,這只是一個錯字,因爲我寫這個問題,謝謝你指出:) – Chanter

+0

你可以刪除關於單引號的hine – Jens