J'utilise un wrapper Java pour accéder à Sqlite mais je suppose qu'il s'agit d'une question générale de Sqlite.Sqlite: Comment insérer une variable dans une chaîne dans une instruction préparée
String stmt = "SELECT foo FROM bah WHERE foo='%/?/%';
PreparedStatement a = myConn.prepareStatement(stmt);
a.setString(1, "hello");
a.executeQuery();
... déclenche une exception - il n'aime pas le? être à l'intérieur des citations. Tout va bien si je le fais
...WHERE foo=?
mais ce n'est pas la déclaration que je veux.
Comment puis-je insérer une variable dans une telle instruction préparée? Si vous oubliez le fait que j'utilise Sqlite, comment cela se fait-il en utilisant d'autres technologies de base de données?
Je ne sais pas la réponse du haut de ma tête, mais avez-vous essayé de faire setString (1, « %/Bonjour%")? Vous devrez peut-être munge votre chaîne d'entrée pour l'entourer w /% –
Je suppose que je pourrais juste faire ... O f foo =? et a.setString (1, "\ '%/hello%/\'"); en dernier recours. –
posté mon commentaire avant que j'ai vu votre suggestion SB - merci. Je pourrais le faire mais j'aimerais quand même savoir s'il y a une meilleure façon! –