Maison >Java >javaDidacticiel >Pourquoi ne puis-je pas utiliser des instructions préparées pour définir les noms de tables dans les requêtes SQL ?
Définition des noms de table à l'aide d'instructions préparées
Lorsque vous travaillez avec des instructions préparées, il est essentiel de comprendre leurs limites. Dans l'exemple donné, le développeur a rencontré une erreur en tentant de définir un nom de table à l'aide de la substitution de paramètres.
Problème :
La requête nécessite un nom de table comme source pour la récupération des données, mais l'instruction "SELECT" utilisait un paramètre où un nom de table était attendu.
Résolution :
Les noms de tables ne peuvent pas être définis dynamiquement à l'aide des paramètres d'instruction préparés. Au lieu de cela, ils doivent être codés en dur dans la requête elle-même. La solution fournie modifie le code pour inclure explicitement le nom de la table sous forme de chaîne dans la requête :
private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "?]";
En combinant le nom de la table codé en dur avec le paramètre (?), la requête peut mettre à jour dynamiquement le composant de date tout en en préservant la référence au bon tableau.
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!