2015-09-21 71 views
1

我目前有一個家族樹數據庫。我得到的數據顯示在做:使用php變量查詢語法以從兩個MySQL表中選擇

$sql = "SELECT * FROM persons WHERE ref='$personID'"; 

這很好用。但是,我最近添加了另一個表census_data。我試圖在人表的同時查詢這張表而沒有成功。我試着這樣做:

$sql = "SELECT * FROM persons, census_data 
WHERE persons.$personID = census_data.$personID "; 

我得到的錯誤說:在 'where子句'

未知列 'persons.405'。

我遠離主管數據庫,但這個錯誤似乎是在談論列,而它是一個我正在尋找的行。顯然我搞砸了。

我該怎麼做?

+0

這看起來[可怕的不安全](http://bobby-tables.com/)。你確定**你的用戶參數是[妥善轉義](http://bobby-tables.com/php)? – tadman

回答

0

你需要加入的人員和census_data也由PERSONID限制數據:

$sql = "SELECT * FROM persons, census_data 
WHERE persons.ref = '$personID' AND persons.ref = census_data.person_id_column_name"; 

你有它的查詢是尋找一個列名等於你PERSONID(405在您的示例)的方式,而不是尋找一個人的405.

+0

很棒!感謝你及時的答覆。 – Dumarest

+0

瞭解顯式連接語法,它將幫助您避免這種錯誤。小費。不要在表格之間使用逗號。 '從內部人員加入census_data on' –