item クラス (item.class.php) と itemDAO クラス (itemDAO.class.php) を作成し、別の php ファイル (test.php) を用意しました。test.php クラスのこれらのクラスを使用して、データベースにデータを挿入したいと考えています。また、データベース クラス (db.class.php) もあります。ここで、オブジェクトの (アイテム) 値を itemDAO クラスの関数に取得することに行き詰まっています。
ここに私のitem.class.phpがあります
<?php
class item {
private $id;
private $name;
private $description;
public function item($_id,$_name,$_description){
$this->id=$_id;
$this->name=$_name;
$this->description=$_description;
}
public function setId( $id )
{
$this->id = $id;
}
public function setName( $name )
{
$this->name = $name;
}
public function setDescription( $description )
{
$this->description = $description;
}
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function getDescription()
{
return $this->description;
}
}
?>
これは私のitemDAO.class.phpです
<?php
include("db.class.php");
include("item.class.php");
class itemDAO {
public function __construct() {
$d=new db();
}
public function AddItem(&$item) { //I am stuck here
$result = $db->query("INSERT INTO item VALUES('$i->') ");//Im stuck here
}
}
?>
オブジェクトから値を取得してSQLクエリに渡すには、どのようにアイテムクラスオブジェクトを取得できますか。私はphpが苦手で、Javaをよく知っています。Javaでは、このように呼び出すことができます
public boolean addItem(Item I) {
String query = "insert into Item(Item_Id, Item_Name, Item_Category, Measuring_Unit, Last_Price_Rate) values ('" + I.getItemID() + "','" + I.getItemName() + "','" + I.getItemCategory() + "','" + I.getMeasuringUnit() + "','" + I.getLastPriceRate() + "')";
System.out.println(query);
}
これは私のtest.phpです
<?php
include("item.class.php");
include("db.class.php");
include("itemDAO.class.php");
$id="3";
$name="aaa";
$descriptio="hi";
$item= new item($id,$name,$descriptio);
$dao=new itemDAO();
$dao->AddItem($item->getId(),$item->getName(),$item->getDescription());
?>
私のデータベースクラス
<?php
class db {
private $link;
// private $host="localhost", $username="root", $password="123", $database="item";
public function __construct(){
$this->host = "localhost";
$this->username = "root";
$this->password = "123";
$this->database = "item";
$this->link = mysql_connect($this->host, $this->username, $this->password)
OR die("There was a problem connecting to the database.");
mysql_select_db($this->database, $this->link)
OR die("There was a problem selecting the database.");
return true;
}
public function query($query) {
$result = mysql_query($query);
if (!$result) die('Invalid query: ' . mysql_error());
return $result;
}
public function __destruct() {
mysql_close($this->link)
OR die("There was a problem disconnecting from the database.");
}
}
?>
オブジェクト指向の PHP でこれと同じことを行うにはどうすればよいですか?