5 messages in com.mysql.lists.mysql-esRE: fantasmas en MYSQL??| From | Sent On | Attachments |
|---|---|---|
| antonio reche oller | 21 Sep 2005 02:17 | |
| Jose Miguel Pérez | 21 Sep 2005 03:27 | |
| Edwin Cruz | 21 Sep 2005 06:22 | |
| Jose Miguel Pérez | 21 Sep 2005 09:55 | |
| Juan Villavicencio | 24 Sep 2005 13:35 |
| Subject: | RE: fantasmas en MYSQL??![]() |
|---|---|
| From: | Edwin Cruz (ecr...@ti.com) |
| Date: | 09/21/2005 06:22:59 AM |
| List: | com.mysql.lists.mysql-es |
Asi como menciona Jose, php con comillas simples no intenta sustituir valores, intenta esto:
$pregunta = "SELECT * FROM imei_vendidos WHERE imei='{$variables[9]}'";
Y tambien aunque usaras comillas dobles php intentaria "parsear" la variable $varuables, pero como es un arreglo la definicion de variable no incluye [], asi que php intenta meter el valor de $variable como variable plana y no como arreglo, con los "{}" ahora si se arregla el problema
Saludos, espero haberme explicado
:: ISC Edwin Cruz Garcia :: IT Factory Systems - Systems Department Texas Instruments de Mexico (449)9105194 Direct Line (449) 9105100 Switchboard, Ext. 5194 (449) 9105124 Fax E-mail: ecr...@ti.com
-----Original Message----- From: Jose Miguel Pérez [mailto:jru...@lmental.com] Sent: Wednesday, September 21, 2005 5:28 AM To: mysq...@lists.mysql.com Subject: Re: fantasmas en MYSQL??
Hola Antonio:
A ver, me ha pasado ya una cosa mu extraña, no le encuentro sentido, a ver si alguien puede darme una explicacion [...] $pregunta = "SELECT * FROM imei_vendidos WHERE imei='$variables[9]'"; [...] la consulta que me dice que no existe es: SELECT * FROM imei_vendidos WHERE imei LIKE '%$variables[9]%'
He comprobado el valor de $variables[9] y es el mismo en los 2 sitios, asi que no lo entiendo
Comprueba una cosa, es posible que sea eso: PHP no reemplaza las variables dentro de cadenas con comillas simples. En el primer ejemplo que has puesto vemos que usas comillas dobles ("), pero en el segundo no. Creo que si que las usas, porque si no, no podrías poner LIKE '%... con comillas simples.
En todo caso, prueba a hacer lo siguiente. Yo siempre que tengo algún problema extraño procuro sacar antes el query para poder cortar y pegar en un cliente remoto como phpMyAdmin y comprobar que el query esté bien.
$sqlQuery = "SELECT * FROM .... etc"; echo "<pre>".$sqlQuery."</pre>"; $qrc = mysql_query($sqlQuery) or die(mysql_error());
En el código anterior hay varias cosas importantes que te pueden ayudar. 1) Saco PRIMERO el query por pantalla para poder verlo y cortar y pegar llegado el caso en phpMyAdmin, 2) como ves no uso el reemplazo de variables dentro de cadenas, sino que las concateno de la forma "texto".$variable."texto" (a veces incluso uso printf). Esto tiene la ventaja de que en editores con syntax highlighting se ven las variables claramente. 3) uso "or die(mysql_error())" para ver inmediatamente si algo ha fallado con el query y poder corregir el error (Si no lo pones, los errores de MySQL no sacarán nada por pantalla). Por ejemplo, en tu SELECT anterior el query fallará si se da la casualidad de que $variables[9] contiene una comilla simple.
Saludos. Jose Miguel.
-- Lista de Correos de MySQL Para el historial de la lista: http://lists.mysql.com/mysql-es Para cancelar inscripción: http://lists.mysql.com/mysql-es?unsub=ecr...@ti.com




