[MySQL]Effectuer un insert avec Delphi for PHP
Bonjour, étant débutant en Delphi, et pas très doué en programmation, après avoir silloné le net, je me rabat sur vous. :)
Je dois développer sous Delphi for PHP, et déjà au départ j'ai quelque problème pour mes requêtes. J'ai installé EasyPhp afin de m'entrainer et d'avoir un serveur apache et une base Mysql sous la main.
J'essaye de créer un "insert" en utilisant le "query" (je ne connais même pas le mot pour désigner le navigateur à côté, pour vous dire à quel point je suis une cloche) mais quand je met cette requête dans le champ:
Code:
insert into hihi('id','name') values (9, 'hoho')
j'ai une erreur qui me donne:
Citation:
Application raised an exception class ADODB_Exception with message 'mysql error: [1064: Erreur de syntaxe près de ''id','name') values (9, 'hoho') LIMIT 0,10' à la ligne 1] in EXECUTE("insert into hihi('id','name') values (9, 'hoho') LIMIT 0,10")
'
Callstack #0 File: C:\Documents and Settings\Treunet\Mes documents\Delphi for PHP Projects\training\Last\unit_datamodule.php Line: 28
|_Callstack #1 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 1213
|_Callstack #2 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 1243
|_Callstack #3 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 489
|_Callstack #4 File: Line:
|_Callstack #5 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 415
|_Callstack #6 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 846
|_Callstack #7 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 510
|_Callstack #8 File: C:\program files\CodeGear\delphi for php\1.0\vcl\db.inc.php Line: 1117
|_Callstack #9 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 693
|_Callstack #10 File: C:\program files\CodeGear\delphi for php\1.0\vcl\system.inc.php Line: 190
|_Callstack #11 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 1089
|_Callstack #12 File: C:\program files\CodeGear\delphi for php\1.0\vcl\db.inc.php Line: 1136
|_Callstack #13 File: C:\program files\CodeGear\delphi for php\1.0\vcl\db.inc.php Line: 933
|_Callstack #14 File: C:\program files\CodeGear\delphi for php\1.0\vcl\db.inc.php Line: 924
|_Callstack #15 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 576
|_Callstack #16 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 179
|_Callstack #17 File: C:\program files\CodeGear\delphi for php\1.0\vcl\adodb\drivers\adodb-mysql.inc.php Line: 490
|_Callstack #18 File: C:\program files\CodeGear\delphi for php\1.0\vcl\adodb\adodb.inc.php Line: 882
|_Callstack #19 File: C:\program files\CodeGear\delphi for php\1.0\vcl\adodb\adodb.inc.php Line: 907
Et si je retire les ' pour les paramètres, j'ai:
Citation:
hihi
Application raised an exception class ADODB_Exception with message 'mysql error: [1064: Erreur de syntaxe près de 'LIMIT 0,10' à la ligne 1] in EXECUTE("insert into hihi(id,name) values (9, hoho) LIMIT 0,10")
'
Callstack #0 File: C:\Documents and Settings\Treunet\Mes documents\Delphi for PHP Projects\training\2\unit6.php Line: 35
|_Callstack #1 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 1213
|_Callstack #2 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 1243
|_Callstack #3 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 489
|_Callstack #4 File: Line:
|_Callstack #5 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 415
|_Callstack #6 File: C:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php Line: 846
|_Callstack #7 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 510
|_Callstack #8 File: C:\program files\CodeGear\delphi for php\1.0\vcl\db.inc.php Line: 1117
|_Callstack #9 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 693
|_Callstack #10 File: C:\program files\CodeGear\delphi for php\1.0\vcl\system.inc.php Line: 190
|_Callstack #11 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 1089
|_Callstack #12 File: C:\program files\CodeGear\delphi for php\1.0\vcl\db.inc.php Line: 1136
|_Callstack #13 File: C:\program files\CodeGear\delphi for php\1.0\vcl\db.inc.php Line: 933
|_Callstack #14 File: C:\program files\CodeGear\delphi for php\1.0\vcl\db.inc.php Line: 924
|_Callstack #15 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 576
|_Callstack #16 File: C:\program files\CodeGear\delphi for php\1.0\vcl\dbtables.inc.php Line: 179
|_Callstack #17 File: C:\program files\CodeGear\delphi for php\1.0\vcl\adodb\drivers\adodb-mysql.inc.php Line: 490
|_Callstack #18 File: C:\program files\CodeGear\delphi for php\1.0\vcl\adodb\adodb.inc.php Line: 882
|_Callstack #19 File: C:\program files\CodeGear\delphi for php\1.0\vcl\adodb\adodb.inc.php Line: 907
Pouvez-vous m'aider svp à me dire où est mon erreur?
ça n'est pas qu'une erreur de syntaxe
La définition de la requête me paraît suspecte :
Active 1 (j'imagine que ça correspond à true)
SQL = 'insert...'
Il m'apparaît donc que vous essayez d'ouvrir une requête qui ne soit pas un select... alors que manifestement c'est ce qui est attendu (puisqu'il est ajouté à la fin la clause LIMIT)
Donc, mettre 0 pour Active, et créer un événement sur lequel lancer la méthode ExecSQL de l'objet Query.