Page 1 sur 1
[R] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 18:55
par Cyrille
Bonjour,
J'utilise un inculde mysql.au3, sujet sur autoitscript.com :
http://www.autoitscript.com/forum/index ... =mysql.au3
l'include en question :
http://www.autoitscript.com/forum/index ... t&id=15889
J'arrive à l'utiliser tout le long de mon programme sans problème. Jusqu'a une requête précise :
► Afficher le texte
Code : Tout sélectionner
$sql = _MySQLConnect("math", "cyr1990", "math", $serveur) ; connection à la base de donnée
Dim $values[6]
$values[0] = ""
$values[1] = $identifiant
$values[2] = GUICtrlRead($message)
$values[3] = @MDAY & "/"& @MON &"/"&@YEAR
$values[4] = @HOUR&"h"&@MIN&"min"&@SEC
$values[5] = ""
Dim $rows[6]
$rows[0] = "id"
$rows[1] = "iduser"
$rows[2] = "contenu"
$rows[3] = "date"
$rows[4] = "heure"
$rows[5] = ""
_AddRecord($sql, 'discution', $rows, $values)
_MySQLEnd($sql)
où j'obtiens cette erreur :
D:\AutoIt\Mysql\mysql.au3 (131) : ==> The requested action with this object has failed.:
$oconnectionobj.execute ($query)
$oconnectionobj.execute ($query)^ ERROR
L'erreur vient donc de l'include, que j'ai pourtant utilisé sans problème jusqu'à présent (mais pas avec de si gosse donnée à envoyer)
J'ai aussi essayer avec une autre façon :
► Afficher le texte
Code : Tout sélectionner
$sql = _MySQLConnect("math", "cyr1990", "math", $serveur) ; connection à la base de donnée
Dim $values[6]
$values[0] = ""
$values[1] = $identifiant
$values[2] = GUICtrlRead($message)
$values[3] = @MDAY & "/"& @MON &"/"&@YEAR
$values[4] = @HOUR&"h"&@MIN&"min"&@SEC
$values[5] = ""
Dim $rows[6]
$rows[0] = "id"
$rows[1] = "iduser"
$rows[2] = "contenu"
$rows[3] = "date"
$rows[4] = "heure"
$rows[5] = ""
_Query($sql,"INSERT INTO discution (id, iduser, contenu, date, heure) VALUES ('','cyrille','blablabla','21/05/1990','21h05min30')") ; ne pas tenir compte du contenu de row, il n'est là que pour tester
_MySQLEnd($sql)
Et toujours le même genre d'erreur, à cette ligne là :
Je sais pas comment fonctionne l'include mysql, j'arrive donc pas à comprendre le problème.
Si quelqu'un peut m'aider... merci d'avance

Re: [...] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 21:10
par Tlem
Pourquoi ne posez-vous pas la question à son créateur directement ?
Re: [...] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 21:20
par Cyrille
En fait au début je voulais juste savoir ce que ça :
ça faisait, quel était son action à cette ligne pour essayer de comprendre moi même.
Sinon moi et l'anglais -_-
Enfin je vais quand même essayer d'aller demander ^^
(mais si quelqu'un sait ce que c'est ça : $oConnectionobj.execute ($sQuery) je serai content aussi, ej suppose que ça a voir avec le drivers qu'il est nécessaire d'installer)
Re: [...] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 21:51
par Tlem
En regardant le code de l'include mysql.au3, à la recherche de la valeur $query, je trouve ceci :
et dans la suite du code de cette fonction, le reste de la phrase est ajouté en fonction de la valeur des arguments.
Prenez garde que votre code respecte ceci :
Code : Tout sélectionner
#cs
Function name: _AddRecord
Description: Adds a record to the specified table
Note(s): to add to multiple columns use an array with one blank element at the end as the $sColumn, and $value parameter
Parameter(s): $oConnectionObj - As returned by _MySQL Connect. $sTable - The table to put the record in
$row - The row to put the record in. $value - The value to put into the row
$vValue - OPTIONAL default will be default for the column (will not work with array, see notes)
Requirement(s): Autoit 3 with COM support
Return value(s): On success returns 1. If the connectionobj is not an object returns 0 and sets @error to 2. If there is any other error returns 0 and sets @error to 1.
Author(s): cdkid
#ce
et que bien évidement vous avez installé les pilotes ODBC comme il est stipulé dans le post original.
Essayez dans un premier temps de mettre des valeurs simples (pas de tableau) pour vérifier la connexion à la base de donnée.
Code : Tout sélectionner
$sql = _MySQLConnect("math", "cyr1990", "math", $serveur) ; connection à la base de donnée
_AddRecord($sql, 'discution', "Row_1", "value_1")
_MySQLEnd($sql)
Si déjà comme ceci ca ne fonctionne pas, il faut voir du coté de la connexion à la base, voir
si la table est Ok etc ...
Re: [...] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 22:05
par Cyrille
J'utilise déjà cette fonction de l'include dans une autre fonction de mon script :
► Afficher le texte
Code : Tout sélectionner
Func newUser()
$prenom = StringLower(GUICtrlRead($i_prenom))
$nom = GUICtrlRead($i_nom)
$identifiant = GUICtrlRead($i_identifiant)
$motdepasse = GUICtrlRead($i_motdepasse)
; on va chercher un identifiant qui a déjà la même valeur
[color=#408000] $sql = _MySQLConnect("math", "*****", "math", $serveur)[/color] ; connection à la base de donnée
$var = _Query($sql, "SELECT * FROM user WHERE id = '" & $identifiant & "'")
With $var
While Not .EOF
$idIsExist = .Fields("id" ).value
.MoveNext
WEnd
EndWith
If $identifiant = $idIsExist Then ; si l'indentifiant chercher est trouvé alors on l'indique et on n'enregistre pas
MsgBox(48, "Identifiant déjà utilisé", "Cet identifiant : " & $identifiant & " est déjà utilisé." & @CRLF & "Choisis en un autre.")
HotKeySet("{ENTER}", "newUser_ENTER")
ElseIf StringLen($motdepasse) < 6 Then; sinon verifie si le mot de passe est bien plus grand que 6 caractères, dans le cas inverse on l'indique et ne fait rien et on n'enregistre pas
MsgBox(48, "Mot de passe trop court !", "Ton mot de passe est trop court, il doit faire plus de 6 caractères." & @CRLF & "( Tout les chiffres et les lettres sont considérés comme des caractères.)")
HotKeySet("{ENTER}", "newUser_ENTER")
Else ; sinon (identifiant non utilisé et mot de passe assez long) on enregistre
[color=#408000] ; enregistrement des informations sur l'utilisateur
Dim $values[5]
$values[0] = $identifiant
$values[1] = $motdepasse
$values[2] = $prenom
$values[3] = $nom
$values[4] = ""
Dim $rows[5]
$rows[0] = "id"
$rows[1] = "mdp"
$rows[2] = "prenom"
$rows[3] = "nom"
$rows[4] = ""
_AddRecord($sql, 'user', $rows, $values)[/color]
MsgBox(64, "Succès !", "Enregistrement réussi avec succès, retiens :" & @CRLF & "Identifiant : " & $identifiant & @CRLF & "Mot de passe : " & $motdepasse)
CLOSE_GUI()
EndIf
[color=#408000] _MySQLEnd($sql)[/color]
EndFunc ;==>newUser
Je n'utilise juste pas la même table ni les même info a envoyer ni la même longeur.
Les deux tables on les mêmes caractéristiques, j'ai vérifié le types des champs, je n'essaie pas d'enregistrer quelque chose que les champs ne supportent pas...
Je vois vraiment pas
Re: [...] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 22:20
par Tlem
Est-ce que ce que je vous ais donné dans la seconde partie de mon poste fonctionne ?
Re: [...] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 22:32
par Cyrille
Non mais si je met ça :
Code : Tout sélectionner
$sql = _MySQLConnect("math", "cyr1990", "math", $serveur) ; connection à la base de donnée
_AddRecord($sql, 'discution', "id", "")
_MySQLEnd($sql)
Il me créer bien l'entité...
Voici la structure de ma table :
Re: [...] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 22:38
par Cyrille
C'est bon j'ai résolut le problème.....
Dire que je cherchais le problème sur mon script alors qu'il ne venait pas de la >,_<
Comme d' habitude c'est toujours une erreur à la con de ma part qui fait perdre du temps à tout le monde..
J'ai vérifier pourtant plusieurs fois ma table et j'avais jusqu'alors pas vu la différence avec les infos de mon script. C'est en regardant le screenshot que j'ai vu : la table contient le champs : "userid" et le script essaie avec "iduser"
Désoler pour le dérangement.......
Je m'en veux à mort...
Merci quand même sans vous j'aurai sûrement pas trouvé (j'aurai pas fait le screenshot)
Re: [R] Mysql, problème avec l'include et un query
Posté : lun. 03 nov. 2008 23:23
par Tlem
L'essentiel c'est d'avoir trouvé la solution.

Re: [R] Mysql, problème avec l'include et un query
Posté : mar. 04 nov. 2008 13:00
par Cyrille
Je pense qu'il y avait d'autre erreur. La table je l'avais réécrite plusieurs fois a des moments j'avais mit iduser aussi. J'avais donc d'autre problèmes que j'ai résolut en même temps ^^