Communauté Eggdrop
Module MySQL - Version imprimable

+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Sujet : Module MySQL (/showthread.php?tid=1789)



Module MySQL - CrazyCat - 01/05/2024

Michael Ortmann a adapté le module MySQL (initialement créé par BarkerJr) pour pouvoir utiliser MySQL sans avoir à charger le package TCL.

Pour l'installer
Pré-requis: libmysqlclient-dev
  1. Téléchargez le module depuis nos scripts ou sur le github
  2. Placez le dans ~/eggdrop-1.9.5/src/mod/
  3. Décompressez le module
  4. Recompilez eggdrop (cd ~/eggdrop-1.9.5/ & ./configure & make config & make & make install)
  5. Ajoutez loadmodule mysql à votre fichier .conf
  6. Rehashez l'eggdrop

Commandes accessibles en TCL
  • mysql_connect <database> <hostname> [user] [password] [socket|port]
  • mysql_close
  • mysql_query <query>
  • mysql_escape [byte] <string>
  • mysql_errno
  • mysql_ping
  • mysql_connectioninfo
  • mysql_insert_id
  • mysql_connected
  • mysql_affected_rows



RE: Module MySQL - CrazyCat - 03/05/2024

Petit ajout: en commençant à écrire une documentation sur ce module, je me suis rendu compte qu'il ne renvoyait pas d'idx de connexion à la base, et effectivement tout se fait en interne dans le module.
Ce qui signifie que pour plus de sécurité vous devez toujours fermer la connexion à la base après avoir effectué vos requêtes, et donc l'ouvrir juste avant. Ainsi, si vous avez plusieurs scripts qui utilisent ce module, vous êtes certain de la connexion en cours, à moins d'avoir le manque de chance qu'il y en ait deux qui s'ouvrent de manière concomitante.

Je ferai plus de tests dès que possible, quitte à voir si je ne peux pas modifier le module pour qu'il intègre un idx.


RE: Module MySQL - MenzAgitat - 03/05/2024

Que se passe-t-il si un script ouvre une connexion à la db, qu'un autre script fait de même, et que le premier script ferme la connexion avant que le deuxième ait fini de l'utiliser ?


RE: Module MySQL - CrazyCat - 03/05/2024

(03/05/2024, 16:19)MenzAgitat a écrit : Que se passe-t-il si un script ouvre une connexion à la db, qu'un autre script fait de même, et que le premier script ferme la connexion avant que le deuxième ait fini de l'utiliser ?

C'est exactement la discussion que j'ai actuellement avec mortmann, d'où la modification que je vais tenter de faire sur le module pour avoir un idx de connexion afin d'utiliser la bonne (même lors de la fermeture)


RE: Module MySQL - CrazyCat - 08/05/2024

Réponse plus précise pour tous:
- le module n'ouvre qu'une seule connexion à la fois, si une connexion existe déjà il l'écrase avec la nouvelle
- par voie de conséquence, il n'y a qu'une connexion a fermer, indépendamment du script qui l'appelle


RE: Module MySQL - CrazyCat - 22/08/2026

Une version multi-connexions est maintenant disponible sur https://scripts.eggdrop.fr/details-MySQL-s266.html

C'est une version béta que j'ai adapté avec l'aide de copilot. Pour la petite histoire, j'avais envie de tester copilot et l'évolution de ce module m'a semblé être une bonne idée de test, suffisamment petit pour que je comprenne les modifications faites et facile à tester.

A l'utilisation du module, peu de différences mis à part qu'à l'initialisation d'une connexion avec mysql_connect on récupère un handle (mysqlX) qui peut ensuite être utilisé comme premier argument des autres commandes mysql pour préciser la connexion qu'on utilise.

Si vous rencontrez un bug, merci de le déclarer sur https://github.com/crazycatdevs/mysql.mod/issues