HyperKut 2 Posté : 23 avril 2020 (modifié) Version de Minecraft : 1.12.2 Version de Skript : 2.3 Addons utilisés: script-db 0.2.1 Type du skript : Script MySQL Description du script : Bonjour, Je me permets de poster car je rencontre un soucis avec les requêtes SQL avec l'addon script-db. Lorque j'utilise des variables non persistantes dans mes requêtes (par exemple {_p}), la valeur qu'on me retourne est vide "<none>". Alors que si j'utilise une variable persistantes ça fonctionne, j'aimerai savoir comment régler ce soucis voici deux exemples ci-dessous un qui fonctionne et un qui ne fonctionne pas : Requête qui fonctionne (mais dont je ne veux pas) Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Requête qui NE FONCTIONNE PAS Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Merci d'avance pour votre aide ! Modifié 23 avril 2020 par HyperKut Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 23 avril 2020 il y a 1 minute, HyperKut a dit : Version de Minecraft : 1.12.2 Version de Skript : 2.3 Addons utilisés: script-db 0.2.1 Type du skript : Script MySQL Description du script : Bonjour, Je me permets de poster car je rencontre un soucis avec les requêtes SQL avec l'addon script-db. Lorque j'utilise des variables non persistantes dans mes requêtes (par exemple {_p}), la valeur qu'on me retourne est vide "<none>". Alors que si j'utilise une variable persistantes ça fonctionne, j'aimerai savoir comment régler ce soucis voici deux exemples ci-dessous un qui fonctionne et un qui ne fonctionne pas : Requête qui fonctionne (mais dont je ne veux pas) # La seule différence se fait sur le {p} set {p} to "%player%" execute unsafe "SELECT * FROM players WHERE pseudo = '%{p}%'" in {sql} and store the result in {_result::*} broadcast "%{_result::password::1}%" # Ici le mot de passe du joueur m'est affiché correctement Requête qui NE FONCTIONNE PAS # Ici j'ai mis {_p} au lieu de {p} set {_p} to "%player%" execute unsafe "SELECT * FROM players WHERE pseudo = '%{p}%'" in {sql} and store the result in {_result::*} broadcast "%{_result::password::1}%" # Et la la valeur retournée est <none> Merci d'avance pour votre aide ! En même temps si tu mets pas '%{_p}%'" ça ne marchera pas... Tu mets des variables différentes Tu définis _p mais tu affiches p Alors que sur le code de dessus, qui est fonctionnel, tu définis p et affiche p Partager ce message Lien à poster Partager sur d’autres sites
Romitou 150 Répondu : 23 avril 2020 Bonsoir, les variables temporaires ne fonctionnent pas avec skript-db. Je te conseille de passer par des variables simples pour effectuer tes requêtes. Bonne soirée. Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 23 avril 2020 il y a 1 minute, Romitou a dit : Bonsoir, les variables temporaires ne fonctionnent pas avec skript-db. Je te conseille de passer par des variables simples pour effectuer tes requêtes. Bonne soirée. (Je ne savais pas, mon message est donc eronné ?) Partager ce message Lien à poster Partager sur d’autres sites
HyperKut 2 Répondu : 23 avril 2020 il y a 5 minutes, KneaXy a dit : En même temps si tu mets pas '%{_p}%'" ça ne marchera pas... Tu mets des variables différentes Tu définis _p mais tu affiches p Alors que sur le code de dessus, qui est fonctionnel, tu définis p et affiche p Tu as répondu trop vite... J'avais fait une erreur de frappe que j'ai corrigée en éditant mon message Partager ce message Lien à poster Partager sur d’autres sites
HyperKut 2 Répondu : 23 avril 2020 il y a 4 minutes, Romitou a dit : Bonsoir, les variables temporaires ne fonctionnent pas avec skript-db. Je te conseille de passer par des variables simples pour effectuer tes requêtes. Bonne soirée. Merci. Le problème c'est que j'ai parfois des variables très complexes et ce n'est pas très utile et propre de créer des variables à chaque fois... 1 Partager ce message Lien à poster Partager sur d’autres sites
Romitou 150 Répondu : 23 avril 2020 il y a 3 minutes, KneaXy a dit : (Je ne savais pas, mon message est donc eronné ?) Salut, les variables temporaires ne fonctionnent pas pour éviter les injections SQL. Une alternative, mais qui remet en question la sécurité de la requête est d'utiliser '%unsafe {_var}%' Partager ce message Lien à poster Partager sur d’autres sites
Invité Répondu : 23 avril 2020 il y a 2 minutes, Romitou a dit : Salut, les variables temporaires ne fonctionnent pas pour éviter les injections SQL. Une alternative, mais qui remet en question la sécurité de la requête est d'utiliser '%unsafe {_var}%' Ne savait pas ;o Partager ce message Lien à poster Partager sur d’autres sites
HyperKut 2 Répondu : 23 avril 2020 il y a 3 minutes, Romitou a dit : Salut, les variables temporaires ne fonctionnent pas pour éviter les injections SQL. Une alternative, mais qui remet en question la sécurité de la requête est d'utiliser '%unsafe {_var}%' Comme ça ? Si c'est ça, ça ne fonctionne pas non plus Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Partager ce message Lien à poster Partager sur d’autres sites
Romitou 150 Répondu : 23 avril 2020 C'est un ancien souvenir, il est possible que ce ne soit plus le cas. Dans tous les cas, la seule et unique solution pour le moment est d'utiliser des requêtes sécurisées et donc utiliser des variables normales. Il y a récemment eu un nouveau add-on dans les ressources, tu peux y jeter un œil mais les requêtes ne sont pas sécurisées, à toi de voir si tu es à l'aise en Java. Partager ce message Lien à poster Partager sur d’autres sites
Yghore 379 Répondu : 24 avril 2020 Bonsoir ! Je vais faire ma petite pub ... xD Il existe un Addons "HydraDb", pas de problème niveau des variables temporaires, mais il ne gères pas les injections SQL ducoup, il faut faire attention à vos requêtes et vérifié les variables avant l'envoie ! https://skript-mc.fr/forum/files/file/334-hydradb-gestion-bdd/ 1 Partager ce message Lien à poster Partager sur d’autres sites
HyperKut 2 Répondu : 24 avril 2020 il y a 37 minutes, Yghore a dit : Bonsoir ! Je vais faire ma petite pub ... xD Il existe un Addons "HydraDb", pas de problème niveau des variables temporaires, mais il ne gères pas les injections SQL ducoup, il faut faire attention à vos requêtes et vérifié les variables avant l'envoie ! https://skript-mc.fr/forum/files/file/334-hydradb-gestion-bdd/ Excellent, merci beaucoup! Partager ce message Lien à poster Partager sur d’autres sites
Rush2Fer 105 Répondu : 17 mai 2020 Le sujet n'a pas reçu de réponse pouvant le résoudre. Il a donc été verrouillé. Cordialement, l'équipe. Partager ce message Lien à poster Partager sur d’autres sites