2016-04-11 14 views
0

Bir php işlevi kullanarak bir mysql veritabanı değeri almaya çalışıyorum. Böyle bir veritabanı var: PHP işlevi bir alandan bir alan değeri ayıklamak için

NAME  | EMAIL    | PASSWORD | OTHER 
------------------------------------------------------- 
example | [email protected] | password | other 
------------------------------------------------------- 
example2 | [email protected] | password2 | other2 

ve benim PHP dosyasında bu işlevi kullanmak denedim

:

function selectUserField($email, $field, $connection){ 
    $select_user = "SELECT '$field' FROM users WHERE email='$email' LIMIT 1"; 
    $result = mysqli_query($connection, $select_user); 
    $value = mysqli_fetch_assoc($result); 
    return $value[$field]; 
} 

//And I try to echo the result of the function 
$connection = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

echo selectUserField("[email protected]", "name", $connection); 

Ama sonuç olarak ben olsun sadece saha adı değil içeriği (Bu örnek için "NAME" olsun ve "example"). Veritabanı hücresinin içeriğini almak için nasıl yapabilirim?

+1

tırnak sütun adını oluşturan Sar kapalı !! – Saty

+0

Çünkü MySQL'in 'NAME' metnini tek tırnak içine alarak geri göndermesini istediğinden, alan adları arka kenelerle veya hiç bir şeyle çevrilmemelidir; böylece mysql, verilen metin yerine bir alan değeri istediğinizi anlar. – ahmad

+0

OH, bu sözdizimi sorunu için özür dilerim. :( – paolobasso

cevap

0

Yaklaşık $ alan yok.

"SELECT $field FROM users WHERE email='$email' LIMIT 1"; 
+0

Evet, işe yarıyor. (Teşekkürler aptalca soru için üzgünüm) – paolobasso

+0

Bir soru asla aptal değil :-) – jackomelly

+1

@paolobasso Lütfen ifadelerinizi hazırlayın, sadece kullanıcının değiştirebileceği bir e-posta seçin Bu, SQL enjeksiyonu için oldukça hassastır. – Tom

2

deneyin bu

function selectUserField($email, $field, $connection){ 
    $select_user = "SELECT `$field` FROM users WHERE `email`='$email' LIMIT 1"; //wrap it with ` around the field or don't wrap with anything at all 
    $result = mysqli_query($connection, $select_user); 
    $value = mysqli_fetch_assoc($result); 
    return $value[$field]; 
} 

//And I try to echo the result of the function 
$connection = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

echo selectUserField("[email protected]", "name", $connection); 
İlgili konular