Nombre de la tabla de escape MySQL
Frecuentes
Visto 15,080 veces
8
Tengo un pequeño problema con el nombre de la tabla de escape. Fui tan estúpido que elegí "mostrar" para el nombre de la tabla. Cuando uso la conexión mysqli, el escape funciona bien, pero no funciona con la conexión mysql clásica. ¿Algún consejo? Lo siento por mi inglés, no soy hablante nativo.
SELECT SQL_CALC_FOUND_ROWS year, nameShow
FROM `show`
LIMIT 0, 10
Me sale un error como
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 'show' at line 2 –
Consulta
$sQuery = "
SELECT SQL_CALC_FOUND_ROWS year, nameShow
FROM `show`
$sWhere
$sOrder
$sLimit
";
3 Respuestas
10
Sección 9.3 del Manual de referencia de MySQL 5.1 dice back ticks (`) o comillas dobles ("), sin embargo, iría con el comentario anterior de Fahim Parkar y simplemente cambiaría el nombre de la tabla.
También vale la pena señalar que debe usar el modo ANSI_QUOTES SQL si usa comillas dobles por Sección 9.2:
Si el modo ANSI_QUOTES SQL está habilitado, también se permite citar identificadores entre comillas dobles
Respondido el 12 de junio de 12 a las 22:06
Finalmente tengo una consulta de trabajo. No sé por qué las otras soluciones no funcionaban. Pero esto funciona: serialtracker.`show`
- zdarsky.peter
4
El problema es con AÑO no con SHOW. AÑO es una función de MySQL. La mejor práctica es citar los nombres de las columnas y las tablas todo el tiempo, lo que también facilita la lectura.
Debería ser:
SELECT SQL_CALC_FOUND_ROWS `year`, `nameShow`
FROM `show`
LIMIT 0, 10
respondido 15 nov., 12:07
MySQL no restringe el uso de nombres de funciones en alias. Solo palabras clave reservadas están restringidas en alias. Ver dev.mysql.com/doc/refman/8.0/en/keywords.html (Solo el (R)
unos). (tampoco restringido en 5.5, 5.6 y 5.7) - SOFe
1
Los backticks deberían funcionar bien
intente poner una coma después de SQL_CALC_FOUND_ROWS,
SELECT SQL_CALC_FOUND_ROWS, year, nameShow
FROM `show`
LIMIT 0, 10
Respondido el 12 de junio de 12 a las 22:06
Sé que debería Pero no se que estoy haciendo mal. $sQuery = " SELECT SQL_CALC_FOUND_ROWS year, nameShow FROM
mostrar` $sDónde $sOrden $sLimit ";` - zdarsky.peter
@zdarsky.peter: ¿Podría publicar su consulta en su pregunta? En la consulta anterior, ¿qué es $s después? show
?? Creo que ese es tu problema - Fahim Parkar
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php mysql sql escaping or haz tu propia pregunta.
¿Qué error obtienes? - Scott Saunders
Cuando cometas este error siempre dispara CAMBIAR EL NOMBRE DE LA TABLA tbl_name TO new_tbl_name comando y dar el nombre adecuado a la tabla :) - Fahim Parkar
Recibí este 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 'show' at line 2
- zdarsky.peterPuede intentar agregar el prefijo from con el nombre de la base de datos (entonces no es necesario usar acentos graves).
FROM dbname.show
- hafichukNo puedo cambiar el nombre de la tabla, porque es un proyecto en ejecución y tendré que cambiarle el nombre y encontrarlo en el código. - zdarsky.peter