PHP PDO İfadeleri parametre olarak tablo veya sütun adı kabul edebilir?
Neden PDO hazırlanmış deyimi, tablo adı geçebilir mi?
$stmt = $dbh->prepare('SELECT * FROM :table WHERE 1');
if ($stmt->execute(array(':table' => 'users'))) {
var_dump($stmt->fetchAll());
}
Başka güvenli bir şekilde SQL sorgusu içine tablo eklemek için bir isim var mı? Güvenli yapmak istemiyorum
$sql = "SELECT * FROM $table WHERE 1"
CEVAP
Lütfen bkz: http://us3.php.net/manual/en/book.pdo.php#69304
Tablo ve Sütun adları PDO parametreleri tarafından değiştirilemez.
Bu durumda sadece süzgeç ve el ile veri sterilize. Bunu yapmanın bir yolu olduğu için geçişte kestirme parametreleri işlevi yürütülür sorgu dinamik ve sonra bir switch() deyimi oluşturmak için bir beyaz liste geçerli değerler için kullanılacak tablo adı veya bir sütun adı. Bu şekilde kullanıcı girişi hiç doğrudan sorgu gider. Örneğin:
function buildQuery( $get_var )
{
switch($get_var)
{
case 1:
$tbl = 'users';
break;
}
$sql = "SELECT * FROM `$tbl`";
}
Hiçbir varsayılan durumda bırakarak veya bir hata iletisi döndüren bir varsayılan durumda kullanarak istediğiniz değerler alışmak kullanılan olun.
Neden Java Vector sınıfı eski veya kul...
Nasıl bir tablo veya sütun için tüm ya...
Girdi olarak parametre değerleri liste...
Neden uçucu yararlı birden çok iş parç...
Hangi bölümleri Real World Haskell şim...