2016-05-24 16 views
0

Ich habe meine connection.php Datei.Wie ruft man eine Verbindungsvariable in der Klasse in PHP auf?

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_DB); 

enthalten ich diese Datei zu meiner index.php file.I haben einige andere Klassendateien index.php Datei enthalten.

<?php 
include('system/includes/config.php'); 
require_once('system/classes/profile.php'); 

meine profile.php Klasse ist unter

<?php 
class Profile{ 
function getProfileData(){ 
    $sql = "SELECT * From profile"; 
    $result = mysqli_query($conn,$sql) or die(mysqli_error()); 
    return $result; 
} 
} 

Meine Frage ist, wie bei der Verwendung kann die Verbindungsvariable in mysqli_query

+0

Sie können es als Parameter übergeben. Erstellen Sie einen Konstruktor für Ihre Klasse, übergeben Sie die Verbindung an sie, und wenden Sie sie dann auf eine private Variable in der Klasse an. – Phiter

+0

@PhiterFernandes kannst du bitte eine Antwort posten – Mujahidh

Antwort

0

passieren Sie einen Parameter an die Funktion einstellen zu mache es unabhängig von anderem Code. Nur

function getProfileData($conn){ 
+1

wette mich dazu;) ahaha –

+0

ich drehe einfach meinen Kommentar in die Antwort :) – splash58

0

Analysieren Sie die $conn Variable als Parameter in der Funktion:

function getProfileData($conn){ 
    $sql = "SELECT * FROM profile"; 
    $result = mysqli_query($conn, $sql) or die(mysqli_error()); 
    return $result; 
} 
+1

Hast du schon mal eine reale Anwendung gesehen, die * in der Tat * mit einem solchen Ansatz eine Datenbank sendet Verbindungsvariable in jede Methode als Parameter? –

+1

@IhrCommonSense nicht wahr? –

-1
function init() { 
    require_once ('Your connection file'); 
    // db staying private here 
    $db = new MysqliDb ('DB_SERVER', 'DB_USER', 'DB_PASS', 'DB_NAME'); 
} 
public function f_name(){ 
    $db = MysqliDb::getInstance(); 
} 

Verwenden Sie Ihre Verbindung, wie oben

0

A kanonische Weise es sich um eine Klasse zu machen wäre Variable

<?php 
class Profile{ 
    public function __construct($mysqli) 
    { 
     $this->db = $mysqli; 
    } 
    function getProfileData(){ 
     $sql = "SELECT * From profile"; 
     $result = $this->db->query($sql); 
     return $result; 
    } 
} 
+0

Danke, was ist $ mysqli und wie definiere ich das? Ist es meine Verbindung in connection.php? – Mujahidh

+0

das ist deine $ conn-Variable –

+0

Was ist der Unterschied, wenn ich meinen Verbindungswert direkt übergebe und ihn in mysqli_query() und mit verwende Ihre Antwort. Sorry fragt nach Lernzwecken – Mujahidh

Verwandte Themen