Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error al llamar funcion() en php

Estas en el tema de Error al llamar funcion() en php en el foro de PHP en Foros del Web. Hola me sale el siguiente mensaje Fatal error: Call to a member function query() on a non-object in C:\wamp\www\app\php\controller\app.controller.php on line 18 Mi codigo es: ...
  #1 (permalink)  
Antiguo 28/08/2015, 15:56
 
Fecha de Ingreso: julio-2015
Mensajes: 16
Antigüedad: 4 años, 7 meses
Puntos: 0
Exclamación Error al llamar funcion() en php

Hola me sale el siguiente mensaje
Fatal error: Call to a member function query() on a non-object in C:\wamp\www\app\php\controller\app.controller.php on line 18

Mi codigo es:

Código PHP:
<?php
        
$Q_TB_REGISTRO_SCOL_DETALLE->closeCursor();
    } else {

    
consultaTablaRegistroSoporteComercialDetalle();
    if (
$TOT_REGISTRO_SCOL_DETALLE 0){
?>
La funcion consultaTablaRegistroSoporteComercialDetalle(); es la siguiente:

Código PHP:
/*<!-- Funcion para mostrar los datos de la tabla tb_registro_scol_detalle, partiendo del USER_MATRICULA -->*/
function consultaTablaRegistroSoporteComercialDetalle()
{
    
$conexion db_connect();
    
$Q_TB_REGISTRO_SCOL_DETALLE $conexion->query('SELECT * FROM tb_registro_scol_detalle WHERE USER_MATRICULA = \'' $_SESSION["USER_MATRICULA"] . '\' AND COD_ESTADO = \'' "3A" '\' ORDER BY FEC_SOLICITUD ASC');
    if (
$Q_TB_REGISTRO_SCOL_DETALLE->rowCount() > 0) {
        
$TOT_REGISTRO_SCOL_DETALLE $Q_TB_REGISTRO_SCOL_DETALLE->fetchAll();
    }
    
$Q_TB_REGISTRO_SCOL_DETALLE->closeCursor();
}
?> 
La linea 18 es:

Código PHP:
$Q_TB_REGISTRO_SCOL_DETALLE $conexion->query('SELECT * FROM tb_registro_scol_detalle WHERE USER_MATRICULA = \'' $_SESSION["USER_MATRICULA"] . '\' AND COD_ESTADO = \'' "3A" '\' ORDER BY FEC_SOLICITUD ASC'); 
  #2 (permalink)  
Antiguo 28/08/2015, 16:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 10 meses
Puntos: 2534
Respuesta: Error al llamar funcion() en php

La función db_connect() debería devolver un objeto, ¿dónde está definida?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/08/2015, 16:43
 
Fecha de Ingreso: julio-2015
Mensajes: 16
Antigüedad: 4 años, 7 meses
Puntos: 0
Respuesta: Error al llamar funcion() en php

Esta es la funcion

Código PHP:
Ver original
  1. <?php
  2.  
  3. /*<!-- Funcion para conectar a la Base de Datos -->*/
  4. function db_connect()
  5. {
  6.     global $conexion;
  7.     $hostname = 'localhost';
  8.     $database = 'u676825869_pacif';
  9.     $username = 'root';
  10.     $password = '*******';
  11.     try {
  12.         $conexion = new PDO('mysql:host='.$hostname.';dbname='.$database,$username,$password);
  13.     } catch (PDOException $e) {
  14.         print "¡Error!: ".$e->getMessage()."";
  15.         die();
  16.     }
  17.     date_default_timezone_set('America/Lima');
  18.     setlocale(LC_MONETARY, 'es_PE');
  19. }
  20. ?>
  #4 (permalink)  
Antiguo 28/08/2015, 16:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 10 meses
Puntos: 2534
Respuesta: Error al llamar funcion() en php

Perfecto, ¿y en qué momento devuelves la conexión?

Debes entender cómo se usan las funciones, mientras no devuelvas la conexión con return dicha conexión no estará disponible afuera cuando invoques la función.

Código PHP:
Ver original
  1. // MAL
  2. function foo() {
  3.   $y = 'OK';
  4. }
  5. $x = foo(); // acá "OK" no existe, no se devuelve
  6.  
  7. // BIEN
  8. function bar() {
  9.   $y = 'OK';
  10.   return $y; // así se devuelve
  11. }
  12. $x = bar(); // acá "OK" sí existe

Por favor, lee una referencia: http://php.net/manual/es/functions.user-defined.php

Además no uses global porque esa tampoco es la solución si no sabes exactamente como funciona.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/08/2015, 17:10
 
Fecha de Ingreso: julio-2015
Mensajes: 16
Antigüedad: 4 años, 7 meses
Puntos: 0
Respuesta: Error al llamar funcion() en php

Eres lo Máximo...!!!

Ahora si funciona...

Código PHP:
Ver original
  1. <?php
  2.  
  3. /*<!-- Funcion para conectar a la Base de Datos -->*/
  4. function db_connect()
  5. {
  6.     $hostname = 'localhost';
  7.     $database = 'u676825869_pacif';
  8.     $username = 'root';
  9.     $password = '*****';
  10.     try {
  11.         $conexion = new PDO('mysql:host='.$hostname.';dbname='.$database,$username,$password);
  12.     } catch (PDOException $e) {
  13.         print "¡Error!: ".$e->getMessage()."";
  14.         die();
  15.     }
  16.     date_default_timezone_set('America/Lima');
  17.     setlocale(LC_MONETARY, 'es_PE');
  18.  
  19.     return $conexion;
  20. }
  21. ?>

Etiquetas: funcion, registro, select, tabla
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 12:57.