Duda sobre las comillas en una query

Iniciado por Pazador, 12 Mayo 2010, 06:36 AM

0 Miembros y 1 Visitante están viendo este tema.

Pazador

Hola a todos.. tengo una duda acerca de las comillas en una query, pero no las comillas simples, ni las dobles.. sino estas: (`)

en diferentes cms que estoy destripando para repasar el codigo encuentro querys como estas:

Código (sql) [Seleccionar]
'SELECT `title`, `content` FROM `freeblock` WHERE `id_lang`='.$id_lang

mi pregunta es saber si es necesario agregar esas comillas (`) en cada query?? porque yo (creo que la mayoria) escribo mis querys asi:

Código (sql) [Seleccionar]
'SELECT title, content FROM freeblock WHERE id_lang='.$id_lang
las dos querys funcionarian sin problemas pero acaso es recomendable hacerlo de la primera forma o esas comillas solo son un adorno  :huh:
La vida es un juego
Mario Bross

Shell Root

Si mal no recuerdo, es igual que esto:
Código (sql) [Seleccionar]
'SELECT "title", "content" FROM "freeblock" WHERE "id_lang"='.$id_lang

Entiendes? No sé como explicarlo...
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Pazador

emmm creo que si entiendo la idea.. pero en teoria no se deberia usar.. ya que los nombres de los campos no son string, sino sus datos que los contienen. Por que he visto que hacen lo mismo para seleccionar un campo `id` sabiendo muy bien que son de tipo int ... me parece que estan por demas  :rolleyes:
La vida es un juego
Mario Bross

^Tifa^

No del todo, algunos objetos en MySQL (esquemas, tablas, indices, columnas, vistas, alias, procedimientos almacenados, etc..) son lo que se conoce como identificadores. Si un identificador contiene caracteres especiales o es una palabra reservada (Si MySQL tiene palabras reservadas tambien lolx, y no "_" y "$" no son palabras reservadas),
estas tienen obligatoriamente que ser encomilladas, con la comilla invertida (`) para que el motor sepa que no te estas refiriendo  a una palabra reservada de el, o que esa data que estas pasando tiene 1 valor pero si tiene caracteres especiales y no se entrecomilla da error.

Si haz programado en algun lenguaje, veras que de vez en cuando utilizas algo para poder usar algun valor que por poseer caracter especial puede ser confundido por el interprete o el compilador como una variable cuando realmente quieres pasar un valor y no una variable..entre otras cosas.

Pazador

 :D ahora si que comprendi la idea, claro que sabia acerca de las palabras reservadas, pero en los momentos que inicie el post no se me vino a la mente, ahora si quedo todo claro... entonces si queremos evitar el uso de palabras reservadas se pueden usar no solamente esas comillas sino las dobles o simples..  ;D
gracias y saludos  :laugh:
La vida es un juego
Mario Bross