Re: niewbie - call methods from another class
| From: | Philip Thompson | Date: | Mon, 20 Apr 2009 13:47:47 +0000 |
| Subject: | Re: niewbie - call methods from another class | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-291683@lists.php.net to get a copy of this message | ||
On Apr 19, 2009, at 9:43 AM, MEM wrote:
Hello, I have something like this: $stmt = $this->_dbh->prepare("INSERT INTO DOG (name_dog, race_dog, id_vet) VALUES (?, ?, ?)");Try this.... <?php class veterinary {$stmt->bindParam(1, $this->getNameDog() ); $stmt->bindParam(2, $this->getRaceDog()); $stmt->bindParam(3, ????????????????????);$stmt->execute(); }To make this insert function work, I need to fill the id_vet database column with some values. I cannot use $this->getIdVet() because this method is not in dog class, is on the veterinary class. So my question is: How can I access the getIdVet() that is on the veterinary class to put it on the insert dog method? Thanks a lot, Márcio
public function getIdVet () {
return $this->id;
}
}
class dog {
public function add () {
$vet = new veterinary ();
$stmt = $this->_dbh->prepare("INSERT INTO DOG (name_dog, race_dog, id_vet) VALUES (?, ?, ?)");
$stmt->bindParam(1, $this->getNameDog());
$stmt->bindParam(2, $this->getRaceDog());
$stmt->bindParam(3, $vet->getIdVet());
$stmt->execute();
}
}
?>
Of course here you will have to determine how the vet id is set. The method getIdVet has a redundant name. Since it's already in the veterinary class, just use getId() or id(). However, you'll probably want to change the above implementation to not create the veterinary in the add() method. You'll probably want to create it in the dog constructor...
<?php
class dog {
public function __construct ($vetId) {
$this->vet = new veterinary ($vetId);
}
...
}
?>
And use $this->vet instead of $vet in the dog->add() method. Hope that helps. Do a little reading to try to understand using objects a little bit more.....
http://php.net/object
~Philip