PHP Programming with MySQL (Chapter 10) から割り当てをコピーして、正しく動作させようとしています。次のエラーが表示されます: 致命的なエラー: 未定義のメソッド OnlineStore::setStoreID() への呼び出し。なぜ問題があるのか わかりません。誰か助けてくれませんか?
ありがとうございました。
phpコードは次のとおりです。
if (class_exists("OnlineStore")) {
if (isset($_SESSION['currentStore']))
$Store = unserialize($_SESSION['currentStore']);
else {
$Store = new OnlineStore();
}
$Store->setStoreID($storeID);
$storeInfo = $Store->getStoreInformation();
if (isset($_GET['ItemToAdd']))
$Store->addItem();
}
else {
$ErrorMsgs[] = "The OnlineStore class is not available!";
$Store = NULL;
}
?>
そして、ここに他のコードの一部があります:
<?php
class OnlineStore {
private $DBConnect = NULL;
private $storeID = "";
private $inventory = array();
private $shoppingCart = array();
}
function __construct() {
include("inc_OnlineStoreDB.php");
$this->DBConnect = $DBConnect;
}
function __destruct() {
if (!$this->DBConnect->connect_error)
$this->DBConnect->close();
}
function setStoreID($storeID) {
if ($this->storeID != $storeID) {
$this->storeID = $storeID;
$SQLString = "SELECT * FROM inventory " . " where storeID = '" . $this- >storeID . "'";
$QueryResult = @$this->DBConnect->query($SQLString);
if ($QueryResult === FALSE) {
$this->storeID = "";
}
else {
$this->inventory = array();
$this->shoppingCart = array();
while (($Row = $QueryResult->fetch_assoc())
!== NULL) {
$this->inventory[$Row['productID']] = array();
$this->inventory[$Row['productID']] ['name'] = $Row['name'];
$this->inventory[$Row['productID']] ['description'] = $Row['description'];
$this->inventory[$Row['productID']] ['price'] = $Row['price'];
$this->shoppingCart[$Row['productID']] = 0;
}
}
}
}