2014-12-02 44 views
1
SELECT jobs.id,jobs.title, jobs.budget, jobs.views_count, jobs.is_active, count(job_applications.id) as count 
    FROM jobs 
    LEFT JOIN job_applications ON job_applications.job_id = jobs.id WHERE jobs.user_id ='.$id.'' AND jobs.title=''.$title.' group by jobs.id 

這個查詢給錯誤:有什麼不對下面的查詢在SQL

語法錯誤,意想不到的 '=',希望 '' 或 ';'

+2

Behol d如果'$ id'和'$ title'沒有正確清理,則SQL注入。 – 2014-12-02 13:30:54

回答

3

問題在於PHP,而不是SQL。

你已經搞砸了單引號。

更新查詢:

$sql = "SELECT jobs.id,jobs.title, jobs.budget, jobs.views_count, jobs.is_active, count(job_applications.id) as count 
     FROM jobs 
     LEFT JOIN job_applications ON job_applications.job_id = jobs.id WHERE jobs.user_id ='$id' AND jobs.title='$title' group by jobs.id"; 
1

嘗試這樣

$your_query = "SELECT jobs.id,jobs.title, jobs.budget, jobs.views_count, jobs.is_active, count(job_applications.id) as count FROM jobs 
    LEFT JOIN job_applications ON job_applications.job_id = jobs.id WHERE jobs.user_id =".$id." AND jobs.title='".$title."' group by jobs.id"; 
+0

爲什麼-1我沒有得到? – 2014-12-02 13:28:05

+1

我沒有downvote,但正如RichardBernards的回答一樣,'$ title'可能是一個字符串,所以在SQL的任一側都需要單引號。 – megaflop 2014-12-02 13:29:18

+0

我們不知道哪個值是什麼.. – 2014-12-02 13:31:01

1

關注您的報價。這裏是你的查詢沒有固定的雙使用引號:

$query = 'SELECT 
    jobs.id, 
    jobs.title, 
    jobs.budget, 
    jobs.views_count, 
    jobs.is_active, 
    count(job_applications.id) as count 
    FROM jobs 
LEFT JOIN job_applications ON job_applications.job_id = jobs.id 
WHERE 
    jobs.user_id ='.$id.' 
    AND jobs.title='.$title.' 
group by jobs.id'; 

如果$title涉及到一個字符串,請使用下,由@daiscog指出:

$query = 'SELECT 
    jobs.id, 
    jobs.title, 
    jobs.budget, 
    jobs.views_count, 
    jobs.is_active, 
    count(job_applications.id) as count 
    FROM jobs 
LEFT JOIN job_applications ON job_applications.job_id = jobs.id 
WHERE 
    jobs.user_id ='.$id.' 
    AND jobs.title=\''.$title.'\' 
group by jobs.id'; 
+0

我假設'$ title'是一個字符串,所以需要引用。 – megaflop 2014-12-02 13:27:42

+0

假設是所有邪惡的根源...我將它作爲參考添加,但標題可能是對另一個表的整數引用=) – RichardBernards 2014-12-02 13:28:41

+0

足夠正確,但我希望列名爲'title_id'或者其他的東西。 – megaflop 2014-12-02 13:30:58

1

更改此

jobs.user_id ='.$id.'' AND jobs.title=''.$title.' 

jobs.user_id ='.$id.' AND jobs.title='.$title.'