Foros del Web » Programando para Internet » PHP »

MySql Vs. MysqlI PHP Nombres de campos

Estas en el tema de MySql Vs. MysqlI PHP Nombres de campos en el foro de PHP en Foros del Web. Hola, tengo un problema al traducir una web de asp a php con los nombre de campos En asp no había problemas con las mayusculas. ...
  #1 (permalink)  
Antiguo 07/01/2016, 05:24
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 4 meses
Puntos: 6
MySql Vs. MysqlI PHP Nombres de campos

Hola, tengo un problema al traducir una web de asp a php con los nombre de campos

En asp no había problemas con las mayusculas. Es decir

Yo en phpmyadmin creaba una tabla con el campo Precio y desde asp hacía un Select * pudiendo llamar el campo por : Rs("precio") Rs("Precio") Rs("PRECIO")

Con PHP me encuentro que serían tres campos distintos.

Uso MYsqlI, sé que con PDO se puede hacer, pero:

¿cómo obligo que en una consulta SELECT * FROM TABLA, los campos los recupere en minúsculas?

Así creo yo mis recordset:

Código PHP:
Ver original
  1. $result = $conn->query("select * from mer_configuracion") Or Die ("Error cargando datos.");
  2.  
  3.                 If ($result->num_rows > 0)
  4.                 {
  5.                     $rs = $result->fetch_object();
  6.  
  7.                     $activo = $rs->Activo;
  8.                     $acceso_usuarios = $rs->Acceso_usuarios;
  9.                     $usr_txtplano = $rs->Usr_txtplano;
  10.                     $usr_verdatos = $rs->Usr_Verdatos;
  11.                     $vereventos   = $rs->VerEventos;
  12.                     $comentariosfb= $rs->ComentariosFB;
  13.                     $nombre_seccion = $rs->Nombre_Seccion;
  14.                     $nombre_subseccion = $rs->Nombre_subSeccion;
  15.                     $formato_banners = $rs->Formato_Banners;
  16.                     $seg_columna = $rs->Seg_Columna;
  17.                     $ocultar_detalle = $rs->Ocultar_Detalle;
  18.                     $usar_tipos = $rs->Usar_Tipos;
  19.                     $rs_miniaturas = $rs->RS_Miniaturas;
  20.                     $txt_btn_contactar = $rs->Txt_Btn_Contactar;
  21.                     $grupopago = $rs->GrupoPago;
  22.                     $medialang = $rs->MediaLang;
  23.                     $ordenanuncios = Explode(" ", $rs->OrdenAnuncios);
  24.  
  25.                 }
  26.                 $result->close();
  #2 (permalink)  
Antiguo 07/01/2016, 05:25
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 4 meses
Puntos: 6
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

La jodienda es que me encanta el CamelCase y en mysql siempre di los nombre de campos con mayúsculas y minúsculas, ya que en asp no importaba.
  #3 (permalink)  
Antiguo 07/01/2016, 05:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

Cita:
Iniciado por PabloManuel Ver Mensaje
La jodienda es que me encanta el CamelCase y en mysql siempre di los nombre de campos con mayúsculas y minúsculas, ya que en asp no importaba.
Mira, la cosa es simple. Cambias de lenguaje ergo cambias de reglas.
Te pasaría exactamente lo mismo si pasases de ASP a otros lenguajes igualmente estrictos.

PHP es sensible a MAYUSCULAS/minúsculas, por lo que si defines una variable como $Precio, deberás escribirla así SIEMPRE.
Para evitarte problemas te recomiendo usar un IDE que tenga corrector y asistente sintáctico, como por ejemplo el NetBeans, donde al ir pulsando las teeclas te va mostrando el nombre de funciones y variables ya definidas en el codigo, lo que te facilita evitar ese tipo de problemas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 07/01/2016, 07:06
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 4 meses
Puntos: 6
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

Pufffff, pues vaya tela, cometo muchos errores.

¿No hay nada como esto? :

$this->db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);

Pero para mysqli ¿?
  #5 (permalink)  
Antiguo 07/01/2016, 07:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

MYSQLI y PDO son cosas diferentes para el mismo fin. No es que no "exista", es que son librerías completamente diferentes, progrmaadas de forma diferente, con recursos diferentes, etc, etc.
Si ysas MYSQLI para acceder a MySQL, deberás respetar la sintaxis y capacidades que tiene.
Y ya que lo mencionas, ¿has probado usar PDO en lugar de MYSQLI?

¿Por qué quieres usar MYSQLI, exactamente?

Además el problema subsiste: El error de nombres de variables no es un tema de librería, sino una característica del lenguaje.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 07/01/2016, 07:28
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 4 meses
Puntos: 6
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

por que las BD de mis páginas son MYSQL sólo y leí que en este caso, por rapidez, consultas simultáneas era mejor MYSQLi.

La verdad, creo que no me supone mucho esfuerzo cambiar de código, pero es que ya voy por la mitad de la traducción, no puedo volver atrás, fue una mala decisión creo, cuando decidí usar uno u otro al comenzar a traducir.

LLevo tan sólo desde el 25-nov con PHP
  #7 (permalink)  
Antiguo 07/01/2016, 07:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

OK...
¿Qué tiene que ver que uses una base de datos MySQL, con el CamelCase?

Si tu problema es escribir los nombres de Variables, ya lo sabes. PHP es Estricto.
Ahora bien, yendo al primer post, tu pregunta original era:
Cita:
¿cómo obligo que en una consulta SELECT * FROM TABLA, los campos los recupere en minúsculas?
En principio, no hay forma. MySQL devolverá los nomrbes de las columnas tal y como hayan sido creados. En eso se diferencia de otros DBMS como Oracle quelos devuelve siempre en mayúsculas.
Si quieres que te los devuelva en minusculas, no podrás usar el asterisco para obtenerlas, sino que deberás indicar uno a uno los campos (de todos modos el asterisco es una pésima práctica en BBDD). De esa forma te los devovlerá como los escribas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 07/01/2016, 07:43
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 4 meses
Puntos: 6
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

claro, para consultas cortas cambio el * por los nombres, pero para consultas con muchos campos no lo estoy haciendo ya que es tedioso.

según tú que es más fácil:

cambiar los campos de la propia db a minúsculas
cambiar a PDO
o cambiar todos los Select * from...

MYSQLi terminará siendo obsoleta en el futuro? sigue operativa en PHP7?
  #9 (permalink)  
Antiguo 07/01/2016, 07:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

Cambia todos los SELECT * FROM...
1) Es mejor práctica.
2) Es mas práctico eliminar la lectura de campos que no se usarán realmente.
3) Evitas sobrecargar el buffer de consultas.
4) Optimizas las consultas evitando que haya un exceso de lectura de bloques de datos.
5) Evitas sobrecargas de red, al no pedir datos innecesarios, mejroando la performance global de la palicación.

Tu decides.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 07/01/2016, 07:49
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 4 meses
Puntos: 6
Respuesta: MySql Vs. MysqlI PHP Nombres de campos

venga, pues eso es lo más sencillo, tan sólo cambio la sentencia, pues nada, a copiar y pegar!!!
Muchas gracias!!!

Etiquetas: campos, mysql, mysqli, nombres, select, tabla, usuarios
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 01:22.