Maison > développement back-end > tutoriel php > Pouvez-vous lier un nom de table dans une instruction PDO ?

Pouvez-vous lier un nom de table dans une instruction PDO ?

Mary-Kate Olsen
Libérer: 2024-11-17 12:42:01
original
813 Les gens l'ont consulté

Can you Bind a Table Name in a PDO Statement?

PHP PDO : Est-il possible de lier un nom de table ?

Question :

Un nom de table peut-il être lié dans une instruction PDO ?

Réponse :

Non. La liaison d'un nom de table n'est pas possible. Il est crucial de mettre en œuvre une liste blanche de noms de tables acceptables pour empêcher tout accès non autorisé aux données sensibles.

Approche sûre et sécurisée :

Au lieu de lier les noms de tables, envisagez d'utiliser un ensemble prédéfini de noms de tables autorisés dans la logique de votre classe ou de votre application. Cette approche garantit que seules les tables approuvées sont accessibles, améliorant ainsi la sécurité de votre application.

Par exemple, vous pouvez créer une classe de table abstraite qui fournit une interface pour accéder aux métadonnées des tables :

abstract class AbstractTable {
    private $table;
    private $db;

    public function __construct(PDO $pdo) {
        $this->db = $pdo;
    }

    public function describe() {
        return $this->db->query("DESCRIBE `$this->table`")->fetchAll();
    }
}
Copier après la connexion

Ensuite, créez une classe de table spécifique qui étend la classe abstraite et spécifie le nom de table autorisé :

class SomeTable extends AbstractTable {
    private $table = 'some_table';
}
Copier après la connexion

Avec cette approche, vous pouvez récupérer en toute sécurité les métadonnées de colonne pour la table spécifiée :

$pdo = new PDO(...);
$table = new SomeTable($pdo);
$fields = $table->describe();
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal