#php
#php
Вопрос:
У меня есть класс с именем CHCID, внутри которого есть две функции:
public function UpdateDeliveryAddress($orderNumber, $deliveryaddress) {
$sql = "UPDATE `CIDOrders`
SET `DeliveryAddress` = '" . mysql_real_escape_string($deliveryaddress) . "'
WHERE `CIDOrderNumber` = " . $orderNumber . ";";
mysql_select_db(DB_DATABASE_NAME, $this->conn);
return mysql_query($sql, $this->conn);
}
public function UpdateInvoiceAddress($orderNumber, $invoiceAddress) {
$sql = "UPDATE `CIDOrders`
SET `InvoiceAddress` = '" . mysql_real_escape_string($invoiceaddress) . "'
WHERE `CIDOrderNumber` = " . $orderNumber . ";";
mysql_select_db(DB_DATABASE_NAME, $this->conn);
return mysql_query($sql, $this->conn);
}
Я вызываю этот класс на странице с именем createorder.php как следует:
// Add a new delivery address to the order
$cid->UpdateDeliveryAddress($_POST['orderNumber'], $_POST['deliveryaddress']);
// Add invoice address to the order
$cid->UpdateInvoiceAddress($_POST['orderNumber'], $_POST['invoiceaddress']);
Я получаю следующую ошибку :
PHP Fatal error: Call to undefined method CHCID::UpdateDeliveryAddress()
Кто-нибудь может помочь.
Большое спасибо
Код, инициализирующий класс.
require_once $CID_INCLUDE_PATH . "/cid.php";
$cid = new CHCID();
Построение класса
class CHCID {
var $conn;
// Constructor, connect to the database
public function __construct() {
require_once "/var/www/reporting/settings.php";
if(!$this->conn = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD)) die(mysql_error());
if(!mysql_select_db(DB_DATABASE_NAME, $this->conn)) die(mysql_error());
}
Комментарии:
1. Вы ставили
$cid = New CHCID();
раньше$cid->UpdateDeliveryAddress()
?$cid
не является объектом, если он не объявлен.2. да, вверху страницы // И создайте объект cid, требующий_once $CID_INCLUDE_PATH » ./cid.php «; $cid = новый CHCID();
3. Вы создаете экземпляр объекта класса
CHCID
? Я предполагаю, что это так$cid
, но было бы неплохо увидеть создание экземпляра.4. Не могли бы вы показать нам, как вы объявляете свой класс CHCID и как вы создаете экземпляр объекта $cid?
5. // И создайте объект cid, требующий_once $CID_INCLUDE_PATH » ./cid.php «; $cid = новый CHCID();
Ответ №1:
Если бы эти функции действительно были в вашем классе, этого бы никогда не произошло.
Проверьте $CID_INCLUDE_PATH
, возможно, вы загружаете другой файл, возможно, более старую версию класса. Также включите предупреждения, уведомления…
Комментарии:
1. @user969733: примите ответ, чтобы другие знали, что проблема решена.