2016-11-12 34 views
1


我試圖從某個SQL表,它確實工作就像下得到一些列DB-連接:
如何獲得我的類/函數

<?php 
include("config.php"); 

// SELECT DATABASE TO ECHO FROM 
$sql = "SELECT * from GuildInformation"; 

// ECHO FROM THE ^SELECT 
$data = $conn->query($sql); 

foreach ($data as $row) { 
// HERE IS SOME CODE WHICH DOES WORK 
} 
?> 

^這種方法確實可行完美,現在我想創建一個圍繞它的功能:當我調用函數SelectGuildInfo();

<?php 
include("config.php"); 

function SelectGuildInfo() { 
// SELECT DATABASE TO ECHO FROM 
$sql = "SELECT * from GuildInformation"; 

// ECHO FROM THE ^SELECT 
$data = $conn->query($sql); 

foreach ($data as $row) { 
// HERE IS SOME CODE WHICH DOES WORK 
}} 
?> 

我碰到下面的錯誤代碼:

Fatal error: Call to a member function query() on a non-object in /users/l4g/www/84732842323772/submit.php on line 12 

線12:$data = $conn->query($sql);

所以當我include("config.php");到我的功能它重新工作,但我想數據庫連接是我的功能之外,因爲我將有超過1這個腳本只有1包括。


除此之外我很新的這整個東西,其實是想使用一個類爲我的數據庫連接嘗試,所以我本想出了:

<?php 

class dbConn{ 
    protected static $db; 
    private function __construct(){ 
     try{ 
      self::$db = new PDO('mysql:host=localhost;dbname=NAME', 'USR', 'PWD'); 
      self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     } 
     catch(PDOException $e){ 
      echo "Connection Error: " .$e->getMessage(); 
     } 
    } 
    public static function getConnection(){ 
     if(!self::$db){ 
      new dbConn(); 
     } 
     return self::$db; 
    } 
} 

?> 

我要如何使用我的課在我的腳本,所以我不必包括我想要使用的每個功能的東西?!

非常感謝你幫助我!
現在有了這個代碼,它運行得很好!:)

include("database.class.php"); 

$db = dbConn::getConnection(); 

function SelectGuildInfo($db) 
+0

請參閱http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php/12769983#12769983 – Fang

+0

不幸的是,我有點新,並不明白大部分是@Fang,但是謝謝 – pbahmann1

+0

mysql類已棄用。使用mysqli或PDO。至於錯誤消息,它告訴你$ conn不是函數的上下文中的一個對象 – Fang

回答

1

您的代碼不起作用,因爲$conn從你的配置中SelectGuildInfo()$conn裏面是兩個不同的變量。

爲了使其工作,您必須將$conn = Database::getInstance()添加到您的SelectGuildInfo中(假設您的工作示例中的$conn是Database的實例)。

P.S.請不要使用mysql_*函數,而應使用mysqli或PDO。

+0

是的,我已經更新了我的課程,並用PDO做了一個新的課程。至少我希望這是PDO壽 - 謝謝你的幫助! – pbahmann1

相關問題