Неустранимая ошибка: вызов функции-члена query() для null в

Здравствуйте, я просто хочу написать собственную функцию, чтобы получить значение параметра из MySQL. Мой файл index.php выглядит следующим образом:

<?
include ('config.php'); // here i have database connection details
include ('global-functions.php');
include ('minifier.php');
include ('cache-start.php');
?>
<!DOCTYPE html>
<html lang="jezyk strony z bazy danych">
USTAWIC META! sekcje head<br>
Sprawdzić czy dodac przekierowanie w php z www na bez www !!
<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">


(...) rest of the file

Файл config.php выглядит так:

<?php

$host = "localhost";
$dbname = "xxxx";
$username = "xxx";
$password = "xxxx";

// Create connection
$conn = new mysqli($host, $username, $password, $dbname);

?>

Теперь я пытаюсь сделать функцию, чтобы принять указанную опцию, я поместил эту функцию в global-functions.php:

<?php


// Get option

function get_option( $option_name ) {

    $sql = "SELECT opcja_value FROM opcje WHERE opcja_name='" . $option_name . "'";
    $result = mysqli_fetch_array($conn->query($sql));

    return $result[$option_name];

}

?>

Теперь я собираюсь вызвать функцию, чтобы получить значение моего варианта. Так:

echo get_option('cache');

или просто, если:

if ( get_option('cache') == '1' ) {
 // do stuff
} else {
 echo 'option disabled, sorry :(';
}

После вызова функции я получаю фатальную ошибку:

Неустранимая ошибка: вызов функции-члена query() для null в /framework/includes/global-functions.php в строке 10

2 ответа

Область применения Область применения $conn не существует в рамках вашей функции. Вы можете объявить это с globalили передайте это так:

function get_option( $option_name, $conn ) { // Pass in $conn here

    $sql = "SELECT opcja_value FROM opcje WHERE opcja_name='" . $option_name . "'";
    $result = mysqli_fetch_array($conn->query($sql));

    return $result[$option_name];

}

Я предлагаю прочитать это

Вы обращаетесь к глобальной переменной внутри функции ($conn). Чтобы сделать эту переменную доступной внутри функции, просто используйте global $conn; в начале вашей функции.

Другие вопросы по тегам