Maison >Java >javaDidacticiel >Pourquoi ne puis-je pas utiliser les paramètres d'instruction préparée pour les noms de table dans SQL ?

Pourquoi ne puis-je pas utiliser les paramètres d'instruction préparée pour les noms de table dans SQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-11 10:10:18130parcourir

Why Can't I Use Prepared Statement Parameters for Table Names in SQL?

Problème de paramètre d'instruction préparée avec le nom de table

Lors d'une tentative de définition dynamique d'un nom de table pour la récupération de données, une erreur s'est produite dans le exécution d'une instruction préparée. La raison de cette erreur provient de l'utilisation d'un paramètre où un nom de table est attendu.

L'exemple de code fourni utilise une instruction préparée avec un espace réservé de paramètre "?" et tente de lui attribuer une valeur, représentant un nom de table. Toutefois, cela n'est pas autorisé car les noms de tables ne peuvent pas être spécifiés dynamiquement via des paramètres. Ils doivent être explicitement définis dans la requête elle-même.

Résolution

Pour résoudre ce problème, codez en dur le nom de la table directement dans la chaîne de requête, comme illustré ci-dessous :

private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "]"?";

Cette modification garantit que le nom de la table est correctement défini dans la requête et peut être exécuté avec succès sans l'erreur susmentionnée.

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!

Déclaration:
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