2013-11-22 6 views
-1

함수를 내부에 포함하고있는 클래스를 작성해, 그 함수는 mysqli를 사용하고 있습니다. 하지만 사용하기 위해 전화를 걸면 작동하지 않습니다. 여기 클래스에서 mysqli를 사용하는 함수를 구현하는 방법은 무엇입니까?

내 코드입니다

연결

dbconfig.php

define('DB_SERVER', 'localhost'); 
define('DB_USERNAME', 'root'); 
define('DB_PASSWORD', 'xxxx'); 
define('DB_DATABASE', 'sample_db'); 
define('PORT', '80'); 
define('SOCKET', '/var/lib/mysql/mysql.sock'); 
$connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE, PORT, SOCKET) or die("Error " . mysqli_error($connection)); 
mysqli_set_charset($connection, "utf8"); 

클래스 사용자

class.php

include('dbconfig.php'); 
class User{ 
    function checkUser($ID, $U_Name){ 
    $query = mysqli_query($connection, "SELECT * FROM user WHERE ID = '$ID'") 
      or die(mysqli_error($connection)); 
    $result = mysqli_fetch_array($query, MYSQLI_ASSOC); 

    if (!empty($result)) { 
     # User is already present 
     $query = mysqli_query($connection, "UPDATE user SET U_Name = '$U_Name' 
       WHERE ID = '$ID'") or die(mysqli_error($connection)); 
     $query = mysqli_query($connection, "SELECT * FROM user WHERE ID = '$ID'"); 
     $result = mysqli_fetch_array($query, MYSQLI_ASSOC); 
     return $result; 
    } 
    else{ 
     #user not present. Insert a new Record 
    } 

    return $result; 
    } 
} 

코드를 호출

include('dbconfig.php'); 
include('class.php'); 
$uid = $user_info->id; //1280 
$user_name = $user_info->name; //Mr. AAAA 

$user = new User(); 
if($uid != "" && $uid != null){ 
    $userdata = $user->checkUser($uid, $user_name); 
    if(!empty($userdata)){ 
    //do something 
    } 
} 

당신은 내가이 문제를 해결하는 데 도움이 수 있습니까?

감사합니다.

+2

/당신은 오류가 무엇을 받고 경고하고? – Damodaran

+0

검색을 사용하려고 했습니까? –

+0

@Damodaran : 아무 것도 표시하지 않습니다. – user2738520

답변

0

이 문제를 해결할 예정입니다. global을 통해이 범위에서 변수에 액세스 할 수있게 설정하십시오.

class User{ 
    function checkUser($ID, $U_Name){ 
    global $connection; 
    // ... 
    } 
} 

여기에서 자세한 내용을보실 : 모든 기능에 http://php.net/manual/en/language.variables.scope.php

0

재 선언 연결 변수처럼 사용하거나

 function checkUser($ID, $U_Name){ 
      global $connection; 
       $query = mysqli_query($connection, "SELECT * FROM user WHERE ID = '$ID'") 
      or die(mysqli_error($connection)); 
    $result = mysqli_fetch_array($query, MYSQLI_ASSOC); 

    if (!empty($result)) { 
     # User is already present 
     $query = mysqli_query($connection, "UPDATE user SET U_Name = '$U_Name' 
       WHERE ID = '$ID'") or die(mysqli_error($connection)); 
     $query = mysqli_query($connection, "SELECT * FROM user WHERE ID = '$ID'"); 
     $result = mysqli_fetch_array($query, MYSQLI_ASSOC); 
     return $result; 
    } 
    else{ 
     #user not present. Insert a new Record 
    } 

    return $result; 
      } 
관련 문제