2014-02-14 74 views
0

我想在PHP PDO中做一個查詢,它將獲取一個簡單的結果。所以就像在我的查詢中,我需要它找到列組爲'Admin'的行,並顯示組列中的內容。我知道我們已經知道它應該是什麼[應該是管理員],但只是需要讓查詢工作。它只能從我的桌子上拿下1排,所以我需要forsearch?來自查詢的PHP PDO結果

如果我將WHERE GROUP ='Admin'更改爲WHERE id ='1',它可以正常工作。但我需要它,所以它可以是其中組=「管理員」

$sql2 = "SELECT * FROM groups WHERE group = 'Admin'"; 
$stm2 = $dbh->prepare($sql2); 
$stm2->execute(); 
$users2 = $stm2->fetchAll(); 

foreach ($users2 as $row2) { 
    print ' '. $row2["group"] .' '; 
} 

感謝

+0

數據庫是什麼樣子? – Bonzo

+0

@Bonzo http://prntscr.com/2sbr51&爲結構http://prntscr.com/2sbr83 – user3219007

回答

0

嘗試在您的WHERE子句中使用wildcard

$sql2 = "SELECT * FROM groups WHERE group LIKE '%Admin%'"; 

因爲在你的表中的值不真的AdminAdministrator然後使用LIKEwildcard將搜索包含管理員的記錄。

1

組是MySQL中的保留字,這就是爲什麼它不起作用。一般來說,爲列名和表名使用保留字是一個好主意。 嘗試使用您的查詢各地組反引號來解決這個問題,所以:

$sql2 = "SELECT * FROM groups WHERE `group` = 'Admin'"; 

而且你真的應該使用佔位符值,因爲你已經在使用事先準備好的聲明這是一個小的變化。

編輯:只是爲了澄清我最後一句關於佔位符的評論。我的意思是這樣的:

$sql2 = "SELECT * FROM groups WHERE `group` = ?"; 
$stm2->execute(array('Admin'));