Bir sınıf yöntemi MySQL bağlantısını geçmek

4 Cevap php

İşte benim sorunum, ben bir ave yöntemi ile bir sınıf var, ben ona bir MySQL DB bağlantı geçmek istiyorum, bu yüzden sınıfından yeni bir nesne oluşturmak ve saveProperty yöntemini çağırın ve benim ana dosyasında i MySQL yarattı saveProperty ($ db): i yöntemini çağırdığınızda bağlantısı ve bir var linki kurtaran bağlantı bu yüzden db $ çağırdı.

ama bir hata alıyorum veri kaydetme insted:

Uyarı: mysql_select_db (): verilen argüman C geçerli MySQL-Link kaynak değildir: \ wamp \ www \ aqaria \ classes \ property.php on line 75

Uyarı: mysql_query (): verilen argüman C geçerli MySQL-Link kaynak değildir: \ wamp \ www \ aqaria \ classes \ property.php on line 99

hangi i sağ linki geçemedi demektir? ama nasıl?

İşte benim kod kısmı:

<?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>";

    }


  }

Burada çağrı kodu:

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

i veritabanı bağlantısı için linki PASS eğer ben merak ediyorum sınıfının yöntemine gloabl anahtar kelime ekledi eğer işe olsa da?

4 Cevap

Eğer bir referans ile denediniz mi?

Ayrıca mysql_affected_rows() in $ db kullanmak isteyebilirsiniz

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>";

}

Bu yöntemlerle yaklaşık db_links geçmek şüphesiz mümkündür.

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

Size veritabanı kimlik bilgileri ve mysql_error ile çıkışını kontrol edin ()

Sen işlevi veritabanı nesnesini yok.

Üstündeki bu ekle:

global $db;

Düzenleme: Bu yaparım senin işleve aktarmak için:

$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);
}

I just use global $db in each method of class I need to use mysql. $db is defined outside of class.

Her yöntemde de, 'global $ db' kullanmak zorunda değilsiniz, bir yöntem var mı.