1

Estoy haciendo una web app para sincronizar dos bases de datos MySQL (ambas en el mismo servidor) y el caso es que tenía muchísimo código spaghetti y he empezado a organizar el código en funciones, para que sea más modular y legible (me cuesta leerlo hasta a mí, que soy el que lo ha hecho con la ayuda de Stack Overflow). Pues bien, el caso es que tengo ahora un fichero functions.php, otro que hace la conexión y otro que es el index.php.

Pues veamos, en functions.php:

<?php

require_once "access-connection.php";
require_once "web-service-connection.php";

function pruebaPrimerRegistroMySQL(){
    echo "<h3>Conexión con MySQL</h3>";
    echo "<br>";
    echo $resultWebService;
    echo "<br>";
    $queryWS="SELECT * FROM pedidos";
    $lecturaWS=mysqli_query($conWebService, $queryWS);
    $datosWS=mysqli_fetch_array($lecturaWS); //Aquí estoy cogiendo el primer registro del MySQL
    
} ?>

En index.php:

<?php

//CONNECTIONS
require_once "access-connection.php";
require_once "web-service-connection.php";
require_once "functions.php";

pruebaPrimerRegistroMySQL();
?>

En web-service-connection.php:

<!-- Connection to PHP Server -->

<?php

    $dbWebService="nombre";

    //servername, username, password, database
    $conWebService=new mysqli("ip", "user", "pw", $dbWebService);
    $resultWebService="";

    if($conWebService){
        $resultWebService= "connected";
    } else {
        $resultWebService= "problemas en la conexión";
    }

?>

El caso es que al ejecutar me salen los siguientes errores:

Undefined variable: resultWebService
Undefined variable: conWebService

El caso es que no comprendo por qué, porque realmente sí que estoy requiriendo los ficheros correspondientes. ¿Alguna idea? Gracias :)

fedorqui
  • 15,850
  • 17
  • 58
  • 112
Sergio
  • 251
  • 2
  • 11
  • ¿Has probado a imprimir algo en los ficheros "access-connection.php" y "web-service-connection.php" para ver si entra en ellos? – fedorqui Oct 20 '20 at 11:32
  • Lo acabo de probar y me lee todos los ficheros, no comprendo nada, porque sí que los lee pero sin embargo no me está importando las variables. – Sergio Oct 20 '20 at 11:34
  • 2
    fíjate que la variable "$resultWebService" la usas dentro de una función. Si quieres usarla allí dentro debes pasársela (o hacerla global) – fedorqui Oct 20 '20 at 11:36

1 Answers1

1

Lo he solucionado. Como han puesto en comentarios, el problema estaba en que al ejecutar el código dentro de una función, tenía que pasar unos determinados parámetros. Al pasarlos ya ha funcionado todo. Muchas gracias :)

Sergio
  • 251
  • 2
  • 11