Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Actualizar php errores

Estas en el tema de Actualizar php errores en el foro de PHP en Foros del Web. Hola. Seguramente ya se ha hablado de este tema. Pero no he podido dar con el hilo. El caso es que quería haceros una consulta. ...
  #1 (permalink)  
Antiguo 13/02/2015, 05:01
Avatar de Filgood  
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 7 meses
Puntos: 1
Actualizar php errores

Hola. Seguramente ya se ha hablado de este tema. Pero no he podido dar con el hilo.
El caso es que quería haceros una consulta.

Tengo el server con php5.5 creo ,y estoy actualizando algunas cosas que tenia desfasadas.

Antes para conectar utilizaba mysql_connect() y la alojaba en una función llamada cbd();

Dicha función la dejaba en una pagina php llamada conectar.php

Cuando quería hacer una consulta desde mi pagina de funciones a la db, mediante un require_once("conectar.php"), utilizaba la función cbd(); para conectar.
Ejemplo:
require_once("conectar.php")
function consulta()
{
// aquí conecto
cbd();
// y mediante el mysql_query() ya podia hacer mis consultas
}

Como mysql_connect y mysql_query ya están desfasadas, los he sustituido por mysqli

Aquí está el problema, si ahora llamo a mi función cbd(); mediante un require_once()
Y la intento ejecutar dentro de otra función , me devuelve error.
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in
Solo deja de devolverme un error si declaro directamente la conexión dentro de la función en la que quiero realizar la consulta:

function consulta()
{
$conectar=mysqli_connect(“localhost” etc…)
// $con=mysqli_query($conectar,”la consulta”);
}
¿ tengo que declarar siempre la conexion dentro de una función para realizar la consulta ? espero que esto no sea asi. Gracias
  #2 (permalink)  
Antiguo 13/02/2015, 09:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar php errores

¿Podrías mostrar el código real del código que mencionas?

Lo digo porque es complicado adivinar que harás mal, porque la idea es que cbd() devuelva la conexión para ser reutilizada por otras funciones.

Pero como no tenemos ni idea de que hace dicha función no sabemos si ahí hay un problema o no.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/02/2015, 13:41
Avatar de Filgood  
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Actualizar php errores

HOla. Gracias por responder.

Por un lado tengo una pagina con la función que conecta. conectar.php
Código PHP:
function cbd()
  {
    

   
    
$conectar mysqli_connect("localhost""filgood""clave""bd");
    if (
mysqli_connect_errno()) {
    
printf("Conexión fallida: %s\n"mysqli_connect_error());
    exit();
}
  } 
Luego en mi página donde almaceno mis funciones llamo a esta funcion mediante un require_once("conectar.php"); para poder utilizar la funcion que me conecta con mis funciones en las cuales hago consultas a la db:
Código PHP:
function consulta()
{
cbd(); // aqui llamo a la funcion que conecta con la db. Y a msqli_query le doy como primer para metro $conectar que está en la funcion cbd();
 
$con=mysqli_query($conectar,"laconsulta");

esto me tira el error arriba mencionado. Parece ser que la mysqli_query no me carga en su primer parametro la conexion a la db.


No se por que no me carga el parametro my consulta

Lo que si que funciona bien es si copio el scrip completo en la funcion que lleva la consulata a la db:

Código PHP:
function consulta()
{
$conectar mysqli_connect("localhost""filgood""clave""bd");
    if (
mysqli_connect_errno()) {
    
printf("Conexión fallida: %s\n"mysqli_connect_error());
    exit();
}

 
$con=mysqli_query($conectar,"laconsulta");

esto si va bien. Pero claro, si tengo que delcarar la conexion cada vez que hago una consulta dentro de una funcion me puedo morir. Algo se me escapa y no se el que. tengo que decir que soy muy novato.

Última edición por Filgood; 13/02/2015 a las 13:49
  #4 (permalink)  
Antiguo 13/02/2015, 16:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar php errores

Te sugiero leer el manual, ahora entiendo por qué no te servía: tu función cbd() jamás devolvía el valor de la conexión, ¿acaso pensaste que se devolvía por arte de magia o cómo?

Debes primero entender como funciona el contexto de las variables en PHP así como el pase de las mismas entre funciones como argumentos.

http://php.net/manual/es/language.variables.scope.php

Y bueno, la solución es simple:
Código PHP:
Ver original
  1. function cbd() {
  2.   // ...
  3.   return $conectar;
  4. }
  5.  
  6. // ...
  7.  
  8. $conectar = cbd();
  9. $consulta = mysqi_query($conectar, $sql);

¿Se entiende la razón del error?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/02/2015, 01:28
Avatar de Filgood  
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Actualizar php errores

Ahora lo entiendo. Te estoy muy agradecido. Ahora lo entiendo perfectamente. Saludos y muchas gracias por la ayuda

Etiquetas: errores, mysql, sql
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 10:13.