SQL deyimi sözdizimi içinde php fonksiyonu

3 Cevap php

Ben aşağıdaki kodu var. Ancak ben sözdizimi ile kavga ediyorum GetUserName fonksiyonunun değerini almak adınızı istiyorum. Herkes ne doğru biri olması gerektiğini söyleyebilir misiniz?

$query = "SELECT user FROM users_entity WHERE username = getUserName()";

3 Cevap

Sen dönemi ile birleştirme kullanabilirsiniz:

$query = "SELECT user FROM users_entity WHERE username = '".mysql_real_escape_string(getUserName())."'";

Verilerinizi kaçmak için emin olun!

Doğrudan bir dizeye bir fonksiyonun sonucu embed olamaz. Ancak bir değişkenin içeriğini saklayabilirsiniz:

$username = mysql_real_escape_string(getUserName());
$query = "SELECT user FROM users_entity WHERE username = '$username'";

Veya, bu gibi bir dizeyi bağlamak olabilir:

$query = 'SELECT user FROM users_entity WHERE username = \'' . mysql_real_escape_string(getUserName()) . '\'';

Sen dizeleri (dahili dize değiştirme) PHP fonksiyon isimleri katmak olamaz.

Muhtemelen daha böyle bir şey istiyorum:

$query = sprintf("SELECT user FROM users_entity WHERE username = '%s'"
    mysql_real_escape_string(getUserName())
);