je poste çà au cas où cela intéresserais un autre débutant. C'est un script pour utiliser une bd mysql sans passer par le gestionnaire ODBC et en utilisant la bibliothèque mysql.dll.
J'ai pompé tout sur Poshu, mais j'ai simplifié pour que cela soit plus facile à comprendre.
Ma question: y a t'il moyen de faire encore plus simple ?

; -------------------------------
; Petit exemple sur le SQL avec libmysql.
; c'est pompé sur l'exemple de Poshu, mais en
; vachement simplifié pour les bleus-bites comme moi
; Pour les fonctions MySql, allez voir ce site:
; http://doc.domainepublic.net/mysql/doc. ... tions.html
; plus clair que http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
; Il faut déjà avoir créé une base mysql, bien sûr !
OpenLibrary( 1 , "c:\Program Files\EasyPHP1-8\php\libmysql.dll" ) ;charger la dll. Chez moi, elle est rangée là.
serveur$ = "127.0.0.1" ; ip serveur easyphp
user$ ="root" ; nom utilisateur, root par défaut
pass$ ="" ; mot de passe, vide par défaut
nomdb$="essaipurebasic" ; nom de la base de données
portsql =0
pipe$ =""
conconf =0
objetdb= CallFunction(1,"mysql_init",0); pour dire, c'est l'objet lien entre la db et les fonctions...
; si quelqu'un peut mieux expliquer...
;Se connecter à la base de donnée
If CallFunction(1,"mysql_real_connect",objetdb, serveur$, user$, pass$, nomdb$, portsql, pipe$, conconf)=0
Debug "echec connexion"
End
EndIf
;chopper des données:
SQL$ = "SELECT * FROM purebasic " ;ca c'est la requete
resultat=CallFunction(1,"mysql_query",objetdb,SQL$) ; exécution de la requête
; c'est l'adresse du résultat qui est mis dans la variable resultat
resultat=CallFunction(1,"mysql_store_result",objetdb) ;stocke le résultat dans un
; objet qui sera manipulé ensuite. Renvoie 0 si la requête n'a rien donné!
;If resultat=0
; Debug "La requête a échoué !"
; End
;End If
nblignes=CallFunction(1,"mysql_num_rows",resultat) ;retourne le nombre de lignes
nbchamps=CallFunction(1,"mysql_num_fields",resultat); nombre champs par ligne
; Debug "lignes "+Str(nblignes)
; Debug "colonnes "+Str(nbchamps)
For i=1 To nblignes
ligne=CallFunction(1,"mysql_fetch_row",resultat); donne l'adresse du debut
; d'une ligne de résultats
For boucle = 0 To nbchamps-1 ;le premier champ est le 0, le second le 1...
pointeur=PeekL(ligne+4*(boucle));donne l'adresse du champ à lire
;cette adresse est stockée sur 4 octets (soit 32 bits) donc entier Long
;donc commande PeekL et incrémentation de 4 à chaque passage.
If pointeur>0
valeur.s=PeekS(pointeur) ; met le contenu du champ dans
; la variable chaîne 'valeur'
; C'est une chaîne, donc PeekS
Else
valeur="NULL"
EndIf
Debug valeur
Next boucle
Next i

[/quote]