Module MySQL
#1
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
Répondre
#2
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.
Répondre
#3
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 ?
Répondre Avertir
#4
(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)
Répondre
#5
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
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté