Вызов функции PHP из внешнего файла PHP - PullRequest
0 голосов
/ 05 сентября 2018

Я недавно начал изучать функциональное программирование на php, я не могу понять, почему это не работает. У меня есть отдельный файл с именем 'functions.php', и я пытаюсь вызвать в нем функцию из индексного файла.

functions.php:

function connectSql() {

  $servername = "";
  $username = "";
  $password = "";
  $dbname = "";

  // Create connection
  $conn = new mysqli($servername, $username, $password, $dbname);
  // Check connection
  if ($conn->connect_error) {
    die("Yhteys katkesi: " . $conn->
  }
}

function displayPublic() {

  connectSql();
  $sql = "SELECT * FROM projects WHERE public == true ORDER BY dateStarted DESC";
  $result = $conn->query($sql);

  if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()){
      echo "Project found";
    }
  } else {
    echo "Ei tuloksia";
  }
  $conn->close();
}

index.php:

include 'functions.php';
displayPublic();

1 Ответ

0 голосов
/ 05 сентября 2018

вы не возвращаете $conn

попробуй

 function connectSql() {

    $servername = "";
    $username = "";
    $password = "";
    $dbname = "";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Yhteys katkesi: " . $conn->connect_error);
    } else {
       return $conn; 
   }
}

function displayPublic() {

    $conn = connectSql();
    $sql = "SELECT * FROM projects WHERE public == true ORDER BY dateStarted DESC";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()){
                                            echo "Project found";
                                            }
    } else {
        echo "Ei tuloksia";
    }
    $conn->close();

}

или сделать $conn глобальной переменной

<?php

    $conn;

   function connectSql() {

        $servername = "";
        $username = "";
        $password = "";
        $dbname = "";

        global $conn;

        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Yhteys katkesi: " . $conn->connect_error);
        }
    }

    function displayPublic() {
        connectSql();
        global $conn;        
        $sql = "SELECT * FROM projects WHERE public == true ORDER BY dateStarted DESC";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            // output data of each row
            while($row = $result->fetch_assoc()){
                                                echo "Project found";
                                                }
        } else {
            echo "Ei tuloksia";
        }
        $conn->close();

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...