Foros del Web » Programando para Internet » PHP »

Problema con php y ACCESS!!!!

Estas en el tema de Problema con php y ACCESS!!!! en el foro de PHP en Foros del Web. Saludos, bueno, mi problema es el siguente . me encomendaron hacer un trabajo con php y access (si, los .. pq acces ..... bueno, trate ...
  #1 (permalink)  
Antiguo 11/07/2006, 20:42
 
Fecha de Ingreso: abril-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
Problema con php y ACCESS!!!!

Saludos, bueno, mi problema es el siguente . me encomendaron hacer un trabajo con php y access (si, los .. pq acces ..... bueno, trate de convencer a la persona de q no fuera access sino mysql pero no resulto), ahora, cuando hago un simple select a la base me da el siguiente error:

Warning: odbc_exec(): SQL error: [Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos en la expresión de criterios., SQL state 22005 in SQLExecDirect in C:\Web\ProyectoPHP\index.php on line 40

el codigo que utilizo es:
Código PHP:
$sql1="SELECT * FROM OPERADOR WHERE Rut_operador = ' ".$rut." ' ";
$res1=odbc_exec($con,$sql1); 
donde $con es el string de coneccion:
Código PHP:
$con=odbc_connect("Base00","",""); 
de antemano muchas gracias.
  #2 (permalink)  
Antiguo 11/07/2006, 20:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tu problema es que Access es un poco mas estricto en sus tipos de datos, asi que debes de tener cuidado en que forma envias tus datos, que tipo de dato es Rut_operador?

Si lo pones entre '', Access lo va a interpretar como string (o Text)
  #3 (permalink)  
Antiguo 11/07/2006, 20:56
 
Fecha de Ingreso: abril-2005
Mensajes: 10
Antigüedad: 19 años
Puntos: 0
Rut_operador es tipo Numero (el tipo de access claro) .. para php int por lo cual probe usando

Código PHP:
$sql1="SELECT * FROM OPERADOR WHERE Rut_operador =".$rut
pero, el gran pero ... claro, ya no me tira el error pero la consulta no retorna ningun dato, quizas estoy usando mal el select, pero ya no se me ocurre otra manera para hacerlo

se agradece .
  #4 (permalink)  
Antiguo 23/07/2006, 04:19
 
Fecha de Ingreso: julio-2006
Mensajes: 1
Antigüedad: 17 años, 9 meses
Puntos: 0
A mi me pasa algo parecido pero con un UPDATE de un campo texto, me devuelve error
UPDATE PLU_Name SET NAME = \'JAMON COC.EXT.\' WHERE PLUINDEX = 514
Warning: odbc_exec(): SQL error: [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta '\'JAMON COC.EXT.\''., SQL state 37000 in SQLExecDirect in C:\AppServ\www\acceso_bd.php on line 21
  #5 (permalink)  
Antiguo 23/07/2006, 08:04
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años
Puntos: 10
Buenas tardes psycarn

Mirando la SQL que pusiste antes, he visto un problema:

Código PHP:
$sql1="SELECT * FROM OPERADOR WHERE Rut_operador = ' ".$rut." ' ";
$res1=odbc_exec($con,$sql1); 
Si te fijas en esto
Código PHP:
WHERE Rut_operador ' ".$rut." ' " 
y mas concretamente en
Código PHP:
' ".$rut." ' " 
podemos ver una cosa, que es BASTENTE importante:

Despues de tu apertura de comillas, tienes un ESPACIO y antes de cerrar tus comillas, tienes otro ESPACIO... esto significa que al buscar en la base de datos en vez de buscar lo que tu quieres (Ej: pepe) está buscando ESPACIOpepeESPACIO...

dentro de tu ejemplo.. está haciendo esto:

Código PHP:
$rut "pepe"
$sql1="SELECT * FROM OPERADOR WHERE Rut_operador = ' ".$rut." ' ";
$res1=odbc_exec($con,$sql1); 
Si sacas por pantalla la SQL te daría
SELECT * FROM OPERADOR WHERE Rut_operador = ' pepe '

Creo que ese puede ser tu problema, por lo que no te saca datos, porque realmente estas buscando algo que NO EXISTE en tu base de datos

Espero que te sea util lo que te comentado.

Un saludo

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:02.