Bonjour Kayne,
Je connais bien MySQL et ca marche fantastiquement bien avec Purebasic et pourtant avec Purebasic je suis le roi des débutant.
Si tu veux faire un essai sans te prendre la tête :
1. Récupère sur Internet EasyPHP ou mieux XAMP
2. En 30 secondes c'est installé
3. Copie la librairie libmysql.dll qui se trouve dans le répertoire d'installation de Xampp, d'EasyPHP ou de la distrib que tu as choisi vers le répertoire ..\Purebasic\Compilers
4. Fait un essai de connexion avec ton navigateur sur le serveur MySQL avec l'appli PhpmyAdmin, généralement l'adresse est :
http://127.0.0.1/phpmyadmin
5. Toujours dans PhpMyAdmin, crée une table ma_table dans la base test pour faire tes tests justement.
6. Utilise ce code que j'ai pompé sur le forum :
Code : Tout sélectionner
#libmysql = 1
host.s = "127.0.0.1"
user.s = "root"
passwd.s = ""
db.s = "test"
port.l = 3306
dbHnd.l
SQL.s
row.s
i.l
j.l
affRows.l
fieldNum.l
rowsNum.l
Procedure.s GetError(db_ID,requester)
Protected Errormsg.s, i.l, Error.l
If CallFunction(#libmysql,"mysql_errno",db_ID) > 0
*Error =CallFunction(#libmysql,"mysql_error",db_ID)
i=-1
Repeat
i=i+1
Errormsg=Errormsg+PeekS(*Error+i,1)
Until PeekB(*Error+i)=0
If requester
Result= MessageRequester("MySQL error",Errormsg,#PB_MessageRequester_Ok)
EndIf
EndIf
ProcedureReturn Errormsg
EndProcedure
If OpenLibrary(#libmysql,"libmysql.dll")
Result=CallFunction(#libmysql,"mysql_init",dbHnd)
If Result
dbHnd = Result
If CallFunction(#libmysql,"mysql_real_connect",dbHnd, host, user, passwd, db, port, "", 0) = 0
GetError(dbHnd,1)
Else
CallDebugger
SQL = "SELECT * FROM ma_table"
If CallFunction(#libmysql,"mysql_real_query", dbHnd, SQL, Len(SQL))
GetError(dbHnd,1)
Else
*mysqlResult=CallFunction(#libmysql,"mysql_store_result",dbHnd)
;no result returned
If *mysqlResult=0
;no fields returned means error
If CallFunction(#libmysql,"mysql_field_count",dbHnd)
GetError(dbHnd,1)
;fields are returned, so no error but query didn't return data
Else
EndIf
;results are returned
Else
affRows = CallFunction(#libmysql,"mysql_affected_rows",dbHnd)
fieldNum = CallFunction(#libmysql,"mysql_num_fields",*mysqlResult)
rowsNum = CallFunction(#libmysql,"mysql_num_rows",*mysqlResult)
Debug affRows
Debug fieldNum
Debug rowsNum
For i=1 To rowsNum
*mysqlRow=CallFunction(#libmysql,"mysql_fetch_row",*mysqlResult)
*mysqlLen=CallFunction(#libmysql,"mysql_fetch_lengths",*mysqlResult)
row = ""
;length of given field
For j=1 To fieldNum
length=PeekL(*mysqlLen+4*(j-1))
fieldptr=PeekL(*mysqlRow+4*(j-1))
If fieldptr>0
content.s=PeekS(fieldptr,length)
Else
;zero pointer returend means empty field
content="NULL"
EndIf
row = row + content + ";"
Next j
Debug row
Next i
Result.l=CallFunction(#libmysql,"mysql_free_result",*mysqlResult)
EndIf
EndIf
EndIf
EndIf
Else
MessageRequester("Error!", "Couldn't open the libmysql.dll!")
EndIf
Le plus important c'est cette ligne : SQL = "SELECT * FROM ma_table" c'est la que tu mets toutes les commandes que tu veux faire sur tes données.
Cerise sur le gateau, ta base est simultanément accessible depuis ton appli Purebasic et sur Internet avec le navigateur
Concernant sql.free.fr, visiblement c'est uniquement l'interface web de free pour utiliser phpmyadmin et gérer ta base.
J'ai moi aussi un compte chez Free et je ne suis pas arrivé à me connecter depuis Pure dessus (Les connexions externes ne sont peut être pas autorisé chez Free ?!
Voila, si pour une fois je peux aider quelqu'un sur ce forum...
Laurent