Foros del Web » Programando para Internet » PHP »

Duda con variables sql_mode

Estas en el tema de Duda con variables sql_mode en el foro de PHP en Foros del Web. Buenas tardes, Tengo un dilema con una configuración en el servidor de mi proveedor de hosting. En la sección de las variables de phpmyadmin está ...
  #1 (permalink)  
Antiguo 20/04/2020, 15:28
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Duda con variables sql_mode

Buenas tardes,

Tengo un dilema con una configuración en el servidor de mi proveedor de hosting. En la sección de las variables de phpmyadmin está la opción de sql_mode, la cual tiene el siguiente valor:

sql_mode = ONLY_FULL_GROUP_BY,​STRICT_TRANS_TABLES,​NO_ZERO_I N_DATE,​NO_ZERO_DATE,​ERROR_FOR_DIVISION_BY_ZERO,​ NO_AUTO_CREATE_USER,​NO_ENGINE_SUBSTITUTION

el cuál no me permite mostrar información en una página cuando la opción: ONLY_FULL_GROUP_BY está activa en ese valor, por lo cual tengo que eliminarla para que pueda mostrar la información en la página, quedando de la siguiente forma:

sql_mode = ​STRICT_TRANS_TABLES,​NO_ZERO_IN_DATE,​NO_ZERO_DAT E,​ERROR_FOR_DIVISION_BY_ZERO,​NO_AUTO_CREATE_USER ,​NO_ENGINE_SUBSTITUTION

Esto, porque al parecer se vuelve a cargar la cadena completa en el servidor cada cierto tiempo. Mi consulta a la base de datos ya la modifiqué en dos ocasiones y el resultado es el mismo. Mi código es este:

Código PHP:
if(isset($_POST['filtrar'])){
        
        
$param1 trim(mysqli_real_escape_string($conn$_POST['marcas']));
        
$param2 trim(mysqli_real_escape_string($conn$_POST['modelos']));
        
$param3 trim(mysqli_real_escape_string($conn$_POST['inicial']));
        
$param4 trim(mysqli_real_escape_string($conn$_POST['menu']));
        
        if(empty(
$param1)){ $marcas ""; } else { $marcas " AND prod.marca_coche = '" $param1 "' ";  }
        if(empty(
$param2)){ $modelos ""; } else { $modelos " AND prod.modelo = '" $param2 "' ";  }
        if(empty(
$param3)){ $anios ""; } else { $anios " AND anio = '" $param3 "' ";  }        
            
        
$sqlSelectBusqueda mysqli_query($conn"Select anio, codigo_barras, nombre, caracteristicas, marca.marca, mcoche.marca_coche, model.modelo, sub.submodelo, ver.version, precio from productos as prod Left Join marca as marca On (id_marca = prod.marca) Left Join marca_coche as mcoche On (id_mcoche = prod.marca_coche) Left Join modelo as model On (id_modelo = prod.modelo) Left Join submodelos as sub On (id_submodelo = prod.submodelo) Left Join version as ver On (id_version = prod.version) Where prod.id_menu = " $param4 $marcas $modelos $anios " Order by prod.id_productos");               
      
    } 
Anteriormente, esta consulta tenía la sentencia Group By. Según esta es la que me provocaba ese impedimento de mostrar la información de esa consulta en la página, por lo cual modifiqué mi código como está arriba, pero el resultado sigue siendo el mismo.

¿Alguien sabe como puedo corregir que ONLY_FULL_GROUP_BY me impida mostrar la consulta? ¿Desde el código en PHP se puede?

De antemano, gracias por sus comentarios.

Saludos!
  #2 (permalink)  
Antiguo 20/04/2020, 17:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Duda con variables sql_mode

No se puede desde PHP, hay que modificarlo directamente en el host.

En local lo puedes hacer desde PhpMyAdmin -> Variables, ahí buscas y modificas sql_mode. Pero para un servidor de producción, generalmente tienes que acudir al soporte técnico.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 21/04/2020, 09:58
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Duda con variables sql_mode

Algo me habían comentado que se puede solo por línea de comandos del servidor, es un servidor Linux, pero no dan ese tipo de soporte, me pasan el acceso y hasta ahí...

De configuración de comandos de Linux no sé nada, estoy nulo en ese tema :(

Gracias por tu respuesta Triby! Saludos!!
  #4 (permalink)  
Antiguo 21/04/2020, 12:47
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Duda con variables sql_mode

Cita:
Iniciado por Middrel Ver Mensaje
Algo me habían comentado que se puede solo por línea de comandos del servidor, es un servidor Linux, pero no dan ese tipo de soporte, me pasan el acceso y hasta ahí...

De configuración de comandos de Linux no sé nada, estoy nulo en ese tema :(

Gracias por tu respuesta Triby! Saludos!!
en este link, hablan del tema

https://stackoverflow.com/questions/...-full-group-by

en resumen, si lo quieres facil, tienes que editar el archivo de configuración del MYSQL, o tener acceso root a la base de datos desde el PHPMYADMIN y ahi hacer los cambios como comentan en el foro(tiene imagenes no hace falta saber a fondo INGLES)

pero que raro, la unica vez que me tope con problemas con ONLY_FULL_GROUP_BY era solo cuando iba a crear la base de datos, y solo modificaba la linea, de mi archivo de definicion de tablas, y agregaba ONLY_FULL_GROUP_BY y listo fuera de eso no tocaba nada mas para que funcionara, eso me lo advertia el programa, MYSQLWORKBENCH (community edition)
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #5 (permalink)  
Antiguo 21/04/2020, 12:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Duda con variables sql_mode

Aquí hay una guía: https://www.ripnethosting.com/desabi...roup_by-mysql/

Aunque sería bueno saber las características (Sabor y versión de Linux, panel de control, etc.) de tu servidor para buscar algo más específico.

[Edición]
Probando en mi servidor (VPS), sí se puede cambiar desde PhpMyAdmin y hay que hacerlo para cada sitio. No sabía de esta posibilidad porque apliqué el cambio desde WHM para que surtiera efecto en todos los sitios.

tuadmin, en una actualización de CPanel incluyeron esta configuración por default, creo que fue hace aproximadamente 2 años y resulta más fácil desactivar esta configuración que "normalizar" todas las consultas para cumplir con los requisitos.
[/Edición]
__________________
- León, Guanajuato
- GV-Foto

Última edición por Triby; 21/04/2020 a las 13:11

Etiquetas: mysqli
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 05:27.