2017-11-09 12 views
0

dbConnection.php他のファイルでmysqli接続オブジェクトにアクセスできませんか?

<?php 
include_once('config.php'); 
$dbConnection = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME); 
    if($dbConnection->connect_errno > 0){ 
    die('Unable to connect to database [' . $db->connect_error . ']'); 
    } 
    mysqli_set_charset($dbConnection, 'utf8'); 
?> 

news.php

<?php 
    require_once('dbConnection.php'); 
    function getNews($request){ 
     $sql = "select * from news"; 
     if (!$result = $dbConnection->query($sql)) { 
      die('There was an error running the query [' . $dbConnection->error . ']'); 
     } 

     $news = array(); 
     while ($row = $result->fetch_assoc()){ 
     $news[]=$row; 
     } 

     $result->free(); 
     $dbConnection->close(); 
     return $news; 
    } 

    $latestNews = getNews($_REQUEST); 
    echo json_encode($latestNews); 
?> 

私は取得していますエラー未定義の変数:ラインXX上のDBConnection。 誰でも問題を解決するのに手伝ってもらえますか?

+0

これは別のファイル上にあるためではありません。これは、関数内にあるためです。 '$ dbConnection'をパラメータとして渡すか、' global $ dbConnection'を使うべきです。 – HtmHell

+0

@HtmHell、私の問題を解決していただきありがとうございます。 – Hitendra

答えて

1

このエラーは、関数内でこの変数にアクセスしようとしているために発生しています。

あなたはこのように、パラメータとして変数を渡す必要があります、

function getNews($request) 
{ 
    global $dbConnection; 
    ... 
} 
0

あなたは関数の外で宣言された関数内の変数を使用しようとしているあなたに:

function getNews($request, $dbConnection) {...} 
$latestNews = getNews($_REQUEST, $dbConnection); 

またはglobalを使用使用する必要がありますグローバル

<?php 
    require_once('dbConnection.php'); 
    function getNews($request){ 
     global $dbConnection; 
     $sql = "select * from news"; 
     if (!$result = $dbConnection->query($sql)) { 
      die('There was an error running the query [' . $dbConnection->error . ']'); 
     } 

     $news = array(); 
     while ($row = $result->fetch_assoc()){ 
     $news[]=$row; 
     } 

    $result->free(); 
    $dbConnection->close(); 
    return $news; 
} 

$latestNews = getNews($_REQUEST); 
echo json_encode($latestNews); 

?>

-1

関数内でrequire_once(dbConnection.php)を関数内に配置するだけで関数にローカルにすることができます。 >

<?php 
function getNews($request){ 
    // put it here 
    require_once('dbConnection.php'); 
    $sql = "select * from news"; 
    if (!$result = $dbConnection->query($sql)) { 
     die('There was an error running the query [' . $dbConnection->error . ']'); 
    } 

    $news = array(); 
    while ($row = $result->fetch_assoc()){ 
     $news[]=$row; 
    } 

    $result->free(); 
    $dbConnection->close(); 
    return $news; 
    } 

    $latestNews = getNews($_REQUEST); 
    echo json_encode($latestNews); 

そして、それは動作します - ?このように。

+1

それは動作しません –

+0

あなたはなぜ明らかにすることはできますか?私はちょうど私のPCをチェックし、それは正常に動作しています。 – MukeshSri691

+0

getNews関数内でグローバルdbConnectionを作成することもできます。両方の方法がうまくいきます。 – MukeshSri691

関連する問題