2009-07-25 137 views
1

這裏是我的問題,我有一個帶有ave方法的類,我想通過一個Mysql DB鏈接到它,所以我從類中創建一個新對象,並調用saveProperty方法,在我的主文件中,我創建了一個MySQL連接並將鏈接保存在一個名爲$ db的變量中,因此當我調用該方法時,它將鏈接到:saveProperty($ db)。將MySQL鏈接傳遞給類方法

但insted的保存數據的我得到一個錯誤:

警告:mysql_select_db():提供的參數是不是在C一個有效的MySQL-Link的資源:\ WAMP \ WWW \ aqaria \類\ property.php上線75

警告:請求mysql_query():提供的參數是不是在C一個有效的MySQL鏈路資源:\瓦帕\ WWW \ aqaria \類\上線99

property.php這意味着我沒有不通過鏈接?但是如何?

這裏是我的一些代碼:

<?php 

    class test 
    { 




    function saveProperty($db) 
    { 

     $sql = "<<query goes here>>" 

     mysql_query($sql,$db); 

     if(mysql_affected_rows()>0) 
     echo "<h3>Data was saved</h3>"; 
     else 
     echo "<h3>Error saving data</h3>"; 

    } 


    } 

這裏是調用代碼:

$db = mysql_connect('localhost','root',''); 
mysql_select_db("aqaria",$db); 
$property = new Property(); 
$property->saveProperty($db); 

但如果我加入了gloabl關鍵字類我想知道如果的方法,將工作我可以通過鏈接到數據庫連接?

+1

你也可以粘貼調用代碼嗎? – deceze 2009-07-25 08:28:14

+0

$ db = mysql_connect('localhost','root',''); mysql_select_db(「aqaria」,$ db); $ property = new Property(); \t \t \t $ property-> saveProperty($ db); – Thamood 2009-07-25 08:39:45

+1

*咳嗽*您還可以將調用代碼粘貼到您的問題**中嗎? – deceze 2009-07-25 08:45:51

回答

0

您是否嘗試過與參考?

你也可能要使用$ DB在mysql_affected_rows()

function saveProperty(&$db) 
{ 

    $sql = "<<query goes here>>" 

    mysql_query($sql,$db); 

    if(mysql_affected_rows($db)>0) 
    echo "<h3>Data was saved</h3>"; 
    else 
    echo "<h3>Error saving data</h3>"; 

} 
0

您的函數中沒有數據庫對象。

頂部補充一點:

global $db; 

編輯:將它傳遞給你的函數,你可以這樣做:

$db = mysql_connect('localhost','root','') or die(mysql_error()); 
mysql_select_db("aqaria", $db) or die(mysql_error()); 

agar_add_offer($someDataFromSomewhere, $db); 

function aqar_add_offer($data, $db) 
{ 
    $property = new Property(); 

    //do some data manipulation 

    $property->saveProperty($db); 
} 
1

這是毫無疑問的可能的方法來回傳遞db_links。

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\aqaria\classes\property.php on line 75

檢查你的數據庫憑據和產量mysql_error()

0

我只是在課堂上的每一個方法,我需要使用MySQL的使用全局$分貝。 $ db是在類之外定義的。

是否有一種方法,我不必在每種方法中都使用'global $ db'。