2012-07-25 79 views
0

我试着PDO扩展,并想知道是否有可能将数据库连接的开放存储为一个可以在需要时调用的函数。我尝试了一些基本的东西,但它似乎没有工作。它可以?作为函数在PHP(PDO)中存储MySQL连接细节

示例功能

function DB() { 
$conn = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
if (!$conn) { 
    echo "<br />MySQL SERVER CONNECTION ERROR.<br />\n"; 
} 
if($conn) { 
    return $conn; 
} 
} 

例使用率

function is_post_id($submitted) { 

try { 
    $id = $submitted; 
    DB(); 

    //check to see if there is a post 
    //with an id matching the submitted query 
    $qPOST= $conn->prepare('SELECT COUNT(*) FROM posts WHERE id = :id'); 
    $qPOST->execute(array('id' => $id)); 

    //results counted 
    $cPOST= (int)$qPOST->fetchColumn(); 
    if($cPOST > 0) { 
     return TRUE; 
    } 
    else { 
     return FALSE; 
    } 
} catch(PDOException $e) { 
    echo $e->getMessage(); 
} 
} 

回答

0

呼叫它为:

$康恩= $这 - > DB();

$ conn = $ className-> DB();

+0

'$ this'没有事先定义? – Eamonn 2012-07-25 12:23:55

+0

如果函数在同一个类中,则需要调用$ this。否则,如果它在另一个类中,则创建该类的一个实例并在第二个示例中调用。 – mlishn 2012-07-25 12:25:57

+0

对不起,我很可能错过了一些东西。根本没有任何课程,只有独立的功能。 – Eamonn 2012-07-25 12:28:52