2016-11-16 23 views
-1

こんにちは私はちょうどmysqlからオプションの値を取得する独自の関数を書いてください。私のindex.phpファイルはこのようになります。致命的なエラー:NULLのメンバ関数query()を呼び出す

<? 
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); 

?> 

今私が指定したオプションを取るために機能を実行しようと、私はグローバル関数でこの機能を置きます。 ph:

<?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 :('; 
} 

コール機能後、私は致命的なエラーが発生します。

Fatal error: Call to a member function query() on null in /framework/includes/global-functions.php on line 10

+0

、機能でそれを使用しているとき? – JustOnUnderMillions

+2

**スコープ**、___Scope___、スコープ。あなたの関数のパラメータとして '$ conn'を渡してください。 – RiggsFolly

+0

関数に$ connを追加すると、それを呼び出すときにエラーは表示されませんが、機能しません。関数はSQLから値を返しません。 –

答えて

0

私はあなたがグローバル変数にアクセスしているthis

を読んで示唆します関数内で($conn)。その変数を関数内でアクセス可能にするには、関数の最初にglobal $conn;を使用します。

5

スコープスコープスコープ! $connは、関数のスコープ内に存在しません。あなたはそうのように、globalでそれを宣言し、またはそれを渡すことができます:

`$のconn`作成され
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]; 

} 
+0

こんにちは、返信ありがとうございます。私はちょうどコードを変更し、私は今これを持っています:get_option()の引数2がない、4行目の/framework/includes/minifier.phpで呼び出され、7行目の/framework/includes/global-functions.phpに定義されています// My minifier.phpファイルはこの関数を呼び出すだけです。私はconn globallyをどのように使うことができますか?ミービーの問題は、含まれているmeaby私は使用する必要がありますか? –

+0

また、関数 'get_option($ optionshere、$ conn);を呼び出すたびに$ connを追加する必要があります。 – aynber

関連する問題