Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-04-2007
harpo harpo is offline
Miembro
 
Registrado: jul 2006
Posts: 35
Poder: 0
harpo Va por buen camino
Problema sintaxis delphi for php

Buenas gente

Estoy probando el Delphi for php y , a parte de ser bastante novato con php, me encuentro con un problema.

He seguido con éxito la ayuda para conectar con una base de datos y mostrar el contenido de una tabla. Pero a la hora de realizar modificaciones sobre dicha tabla, me encuentro conque me salta este error

Código:
Application raised an exception class ADODB_Exception with message 'mysql error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0,10' at line 1] in EXECUTE("INSERT INTO customers (`UID`,`SERIALNUM`,`KEY`) values (1,1,1)    LIMIT 0,10")
'
Callstack #0 File: C:\Documents and Settings\harpo\My Documents\Delphi for PHP Projects\unit1.php Line: 44
  |_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
E intento insertar con esto

Código:
 $s="INSERT INTO customers (`UID`,`SERIALNUM`,`KEY`) values (1,1,1)";
                     $this->Query1->writeSQL($s);
Ese código se ejecuta al clickear sobre un botón. Y otro problema q tengo es q debo de clickear 2 veces para que muestre el error.

A ver si alguien me puede orientar un poquito.

gracias
Responder Con Cita
  #2  
Antiguo 18-04-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Si no estoy equivovado el "LIMIT" no cabe en consultas del tipo "INSERT" sino del tipo "SELECT" y "UPDATE", pero, tampoco lo tengo del todo claro... pareciera que tiene alguna lógica, pero, yo hasta ahora no he visto utilizar el "LIMIT" en consultas del tipo "INSERT".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 18-04-2007
eduenas eduenas is offline
Registrado
 
Registrado: abr 2007
Posts: 6
Poder: 0
eduenas Va por buen camino
Si quieres evitar todos estos dilemas te recomiendo que programes en capas y solo le mandas la consulta a las tablas , textbox, list ,etc

saludos
Responder Con Cita
  #4  
Antiguo 18-04-2007
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Hola Harpo

el codigo php puede ser distinto a como lo estamos acostumbrados
ver cuando se combina php y html, o para los que venimos
de delphi usamos, (yo hice la misma query que tu)

tu query bien puede ser colocada en un componente Query
y por codido dentro de un boton

Código PHP:
$this->Query1->open

pero como lo quieres ejecutar por codigo


revisa, como lo hacen en el demo
ECommerceExample

en el archivo

inc_register.php

hay un codigo, en la linea 55 que ejecuta un query

Código PHP:
$query "SELECT * FROM users WHERE Username = '" mysql_real_escape_string$this->Username->Text ) . "' OR Email = '" mysql_real_escape_string$this->Email->Text ) . "'";

 
GetDBModule()->Query1->close();

                    
GetDBModule()->Query1->SQL $query;

                    
GetDBModule()->Query1->open(); 
suerte
Responder Con Cita
  #5  
Antiguo 19-04-2007
harpo harpo is offline
Miembro
 
Registrado: jul 2006
Posts: 35
Poder: 0
harpo Va por buen camino
Muchas gracias por las respuestas.

Ya solucioné el tema... era por la sintaxis mysql . Lo dejé así

Código:
INSERT INTO `customers` (`UID`, `SERIALNUM`, `KEY`) VALUES (\''.$UID.'\', \''.$SerialN.'\', \''.$Key.'\');'
Cita:
revisa, como lo hacen en el demo
ECommerceExample

en el archivo

inc_register.php

hay un codigo, en la linea 55 que ejecuta un query

Probaré con esto también.

Gracias
Responder Con Cita
  #6  
Antiguo 18-12-2007
Avatar de noshy
noshy noshy is offline
Miembro
 
Registrado: jul 2003
Posts: 139
Poder: 21
noshy Va por buen camino
Insert

Si haces un INSERT no puedes poner LIMIT, como haces para sacar el Limit en la Consulta?? de esta manera:

Código PHP:
$this->Query->Close;
$this->Query->LimitStart '-1';
$this->Query->LimitCount '-1';
$this->QUsuarios->writeSQL('<sentencia insert>');
$this->Query->Open;
$this->Query->Close

Espero te sirva.
__________________
\_--> NoShY <--_/

Última edición por noshy fecha: 20-12-2007 a las 23:51:44.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con sintaxis. zvf OOP 5 13-03-2007 20:19:21
Cambio la sintaxis en Delphi 8 ? MadeInBsAs .NET 3 13-01-2007 20:17:40
Problema sintaxis con FIREBIRD vivamotos SQL 3 30-08-2006 16:41:15
Problema con sintaxis LIMIT o TOP vivamotos C++ Builder 1 22-08-2006 15:35:21
Problema de Sintaxis???? Jvilomar SQL 2 28-12-2005 18:14:35


La franja horaria es GMT +2. Ahora son las 05:50:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi