Con diferencia, este es de los errores más comunes que nos encontraremos a lo largo de toda nuestra vida de desarrollo Web. Por suerte, suele ser muy fácil de detectar y de resolver, y va a hacer que comprendamos mejor nuestro código, así como las interacciones entre nuestra Web y la base de datos.
1 Etapa de filtro de detección:
- Nunca poner acentos, espacios o eñes en los nombres de los campos de las bases de datos
- Los nombres de las tablas, la misma norma anterior, y siempre en minúsculas.
- Asegurarnos de que si estamos utilizando sesiones, la misma sigue viva (por defecto, si estamos viendo una página sin cambiar de la misma durante un periodo de unos 20 minutos, la sesión se destruye sola, con lo que la variable de sesión que almacena por ejemplo el ID de usuario, pasa a tener valor nulo.
2 etapa de filtro de detección:
En ocasiones nos sale el error y nos obcecamos en la consulta concreta de esa página, cuando no es la que está fallando. Debemos mirar el código fuente de la página que da el error en el navegador para ver exactamente cuando se para el código con el error. Ahí tendremos exactamente el lugar de nuestra programación donde la consulta está fallando, puede ser en una consulta de la página, o bien en una consulta de una función que tengamos en funciones.php, o incluso en otro archivo de inclusión.
Lo más práctico es hacer un «echo» de la variable donde almacenamos la consulta que luego se dispara, esto suele ser entre:
$query_ConsultaFuncion = «SELECT COUNT(idPublicidad) AS Total FROM tblpublicidad WHERE ……..;
$ConsultaFuncion = mysql_query($query_ConsultaFuncion, $ab) or die(mysql_error());
Es decir, entre estas dos lineas, pondremos el echo, de esta forma (el nombre de la variable puede cambiar según la hayáis llanado, claro…
echo $query_ConsultaFuncion;
Con lo que nos quedaría algo así:
$query_ConsultaFuncion = «SELECT COUNT(idPublicidad) AS Total FROM tblpublicidad WHERE ……..;
echo $query_ConsultaFuncion;
$ConsultaFuncion = mysql_query($query_ConsultaFuncion, $ab) or die(mysql_error());
Una vez puesto este echo (sería un sistema de traza sencillo), reejecutamos o actualizamos la página del fallo y veremos como sale la consulta que presumiblemente nos está fallando. Si esta consulta está correcta, deberemos seguir en el archivo de funciones.php para hacer la misma operación en todas las consultas que ejecutemos en esa página. Es decir, seguimos secuencialmente nuestra programación para saber en qué momento se está produciendo otra consulta y lo atacaremos con otro echo.
Una vez hayamos resuelto el por qué la consulta falla y lo tengamos solucionado, simplemente eliminaremos la linea del echo o la comentaremos. Los fallos más comunes de este tipo de error es por una mala construcción de la consulta, falta de parámetros, parámetros vacíos, etc… Si no tenemos un dominio muy avanzado de cómo se estructuran las consultas SQL básicas podéis consultar este sencillo manual.
Espero que os sirva de ayuda. Saludos!.
Buenas noches, me sale este error y no encuentro la solución. Intente con la posible solución que figura al encabezado de esta página pero no funciona. Alguien podria ayudarme con este problema: 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 » at line 1
Gracias.
Haz un echo de PHP de la consulta que te da el problema para poder analizar cual es el problema
Saludos
Buenas tardes, he puesto esto echo $query_DatosUsuarios; en medio de las siguientes lineas:
$query_DatosUsuarios = «SELECT * FROM tblusuario ORDER BY tblusuario.strNombre ASC»;
echo $query_DatosUsuarios;
$DatosUsuarios = mysql_query($query_DatosUsuarios, $conexionproductos) or die(mysql_error());
Y no se resuelve nada, tampoco me indica el fallo.
Te debe de sacar la consulta escrita por pantalla. Si esa consulta se realiza bien luego llevada a phpmyadmin o Navicat, entonces el error está en otra consulta que hagas en esa página o en algun archivo relacionado como puede ser funciones.php
Saludos
Hola Jorge,
Estoy en video 37 de tienda en linea y tengo el siguiente error: 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 ‘ORDER BY categorias.nombCategoria ASC’ at line 1
Trate de corregirlo con el echo, pero no funcionay la consulta esta correcta, es mas la compare con el ZIP que descargue, me llega a este error despues de insertar una categoria y luego debe ir a categorias lista y es ahy donde sale el error, pero si abro nuevamente categorias lista noto que ingreso el producto a la base de datos, que error puedo tener, en que me equivoque o que puede estar pasando?
Hola;
A partir de ahora debes realizar la pregunta a través de nuestro sistema de consultas, es gratuito y muy rápido de utilizar.
http://www.dreamweaver-tutoriales.com/soporte
Muchas gracias y un saludo
hola jorge !!!
oye me puedes ayudar tengo un pequeño error:
Notice: Undefined index: Categoria in C:\wamp\www\musicshop\admin\productos_add.php on line 45
Column ‘Categoria’ cannot be null
Revisa la consulta con un ECHO para ver donde falla exactamente. Saludos
Ya esta resuelto, como siempre los errores son de escritura, de todas maneras gracias, y te felicito por tus cursos.
esto tengo puesto en cada archivo de php
<?php
$contenido = 'Hola xxxxx;Tu compra ha sido aceptada y en estos momentos la estamos enviando a la direccion que nos indicaste’;
$asunto = ‘Compra enviada en tiendazapatos.com’;
EnvioCorreoHTML(ObtenerMailUsuario($_GET[‘usuario’]), $contenido, $asunto)
?> practicamente es lo mismo k tu
Consulta en https://blog.ayzweb.com/tutorial/el-error-php-you-have-an-error-in-your-sql-syntax
Saludos
Hola Jorge muy buenos los cursos, sale error al ejecutar compra_cancelar.php y en compra_aceptar.php es del video 31 parece k es por la version del Mysql el error dice (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 ‘idCompra = 15’ at line 1) me puedes ayudar gracias
Pues muchas gracias por todo Don Jorge, ya solo me queda agregar los casi dos mil productos, en esto tardare un poco por cuestiones de SEO. Una cosa que me gustaría mejorar es pasar de MYSQL a MYSQLi o POD como ya sabrá. No tarde en sacar un tutorial por favor mucha gente lo estamos esperando.
Si quiere puede mirar nuestra tienda vieja, le pongo el link en web, espero que le guste.
En la tienda nueva he mantenido el estilo del Front end aunque le dí un buen lavado de cara.
Estamos creando una documentación al respecto. Saludos
Don Jorge subí a REMOTO el .zip número 75 de la tienda online y tampoco funcionan los header Location, no redirige después de hacer el INSERT, UPDATE etc , ¿que puedo hacer? si me da alguna pista se lo agradecería un montón.
Tema: header Location $insertGoTo
Holeeeeeeeeeeeeeeeeeeeeeeee!!! ya lo arregle a las 5 la mañana, vaya con el php y Mysql me tiene loco, Don Jorge he visto que mucha gente le pregunta por lo mismo pero siempre les contestas con ( has mirado en preguntas frecuentes ).
Bueno espero poderles ayudar, si los Header no hacen su trabajo y no sale ningún tipo de error posiblemente es porque en la conexión hay saltos de linea, solo con quitárselo la web funcionará perfectamente en REMOTO.
Es que precisamente está explicado en las preguntas frecuentes, es de hecho, una pregunta frecuente!
Saludos
Don Jorge es imposible buscar en preguntas frecuentes por que no tiene fin, es muy incomodo estar pasando páginas y leyendo todo los comentarios y además el buscador no ayuda en nada solo busca los que usted a posteado. Buen día Profesor.
Lol jajaja pues ahora que no me hacia falta acabo de verlo el POST jajaja disculpa don Jorge.
https://blog.ayzweb.com/consejos-freelance/como-solucionar-el-error-warning-session_start-function-session-start
Ya me podría a ver pasado el link tal cual jajaja
A eso me referia, no busques en las respuestas, si no en el propio post!. saludos
Muy buen post Don Jorge. Yo acabo de colgar por 1º vez la tienda, funciona casi perfecta pero los insertGoTo no funciona en remoto pero el local si, usted me podría indicar como arreglarlo. Saludos.
Has probado a seguir los datos que indico en el post?
Saludos
El problema es que no hace ninguno de los insertGoTo en remoto. No funciona Carrito-add, Alta-Usuario, Acceso etc.
El único problema es que no redirige después de enviar los parámetros.
Los parámetros se insertan bien en la base de datos, cuando por Ejemplo elijo un producto y compro, los parámetros se envían por URL el problema que se queda en Carrito-add y no redirecciona a Carrito-Lista lo mismo pasa con Acceso, Alta-Usuario etc.
Muchas gracias por atenderme Don Jorge.
Controla que antes del header que hace el salto, no estás sacando nada de HTML… consulta el post de Preguntas frecuentes para revisarlo.
Saludos
Si si todo perfecto además tomo como referencia los .rar que usted nos da para descargar, estoy por subir su ejemplo para ver si es fallo de mi tienda o hay que modificar algo en el Cpanel de mi hosting. Todo los insertGoTo están antes del header Location y no Html de por medio. Seguro que es un fallo idiota porque toda la tienda funciona perfecta y muy rápida Muchísimas gracias Profesor.
Por cierto me alegro un montón veo que cada vez tienes mas gente preguntándote por los cursos, seguro que muchos se suman a las clases.
Consulta el post de «erorres en php» para poner la instrucción para que te fuerce a mostrar los errores.
Saludos