2017-11-09 4 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