Jump to content

Fatal error: Call to a member function query() on a non-object


spherion

Recommended Posts

Everytime I visit a page linked to this code, it receive the error Call to a member function query() on a non-object on line 31. Here is the code.

 

<?php
class ShoppingCart {
private $DBConnect = "";
private $DBName = "";
private $TableName = "";
private $Orders = array();
private $OrderTables = array();

function _construct() {
$this->DBConnect = @new mysqli("localhost", "staticlo_shane", "shinfoosh");
if (mysqli_connect_errno())
	die("<p>Unable to connect to the database server.</p>"
	. "<p>Error code " . mysqli_connect_errno()
	. ": " . mysqli_connect_error()) . "</p>";
}
function _destruct() {
$this->DBConnect->close();
}
public function setDatabase($Database) {
$this->DBName = $Database;
@$this->DBConnect->select_db($this->DBName)
	Or die("<p>Unable to select the databbase.</p>"
	. "<p>Error code " . mysqli_errno($this->DBConnect)
	. ": " . mysqli_error($this->DBConnect)) . "</p>";
}
public function setTable($Table) {
$this->TableName = $Table;
}
public function getProductList() {
$SQLstring = "SELECT * FROM $this->TableName";
$QueryResult = $this->DBConnect->query($SQLstring)
	Or die("<p>Unable to perform the query.</p>"
	. "<p>Error code " . mysqli_errno($this->DBConnect)
	. ": " . mysqli_error($DBConnect)) . "</p>";
echo "<table width='100%' border='1'>";
echo "<tr><th>Product</th><th>Description</th><th>Price Each</th><th>Select Item</th></tr>";
$Row = $QueryResult->fetch_row();
do {
	echo "<tr><td>{$Row[1]}</td>";
	echo "<td>{$Row[2]}</td>";
	printf("<td align='center'>$%.2f</td>", $Row[3]);
	echo "<td align ='center'>
		  <a href='ShowCart.php?PHPSESSID=" . session_id()
		  . "&operation=addItem&productID=" / $Row[0]
		  . "'>Add</a></td></tr>";
	$Row = $QueryResult->fetch_row();
} while ($Row);
echo "</table>";
}
public function addItem() {
$ProdID = $_GET['productID'];
if (array_key_exists($ProdID, $this->Orders))
	exit("<p>You already selected that item! Click your
		 browser's back button to return to the
		 previous page.</p>");
$this->Orders[$ProdID] = 1;
$this->OrderTable[$ProdID] = $this->TableName;
}
function _wakeup() {
$this->DBConnect = @new mysqli("localhost", "staticlo_shane", "shinfoosh");
if (mysqli_connect_errno())
	die("<p>Unable to connect to the database server.</p>"
	. "<p>Error code " . mysqli_connect_errno()
	. ": " . mysqli_connect_error()) . "</p>";
@$this->DBConnect->Select_db($this->DBName)
	Or die("<p>Unable to select the database.</p>"
	. "<p>Error code " . mysqli_errno($$this->DBConnect)
	. ": " . mysqli_error($this->DBConnect)) . "</p>";
}
public function showCart() {
if (empty($this->Orders))
	echo "<p>Your shopping cart is empty!</p>";
else {
	echo "<table width='100%' border='1'>";
	echo "<tr><th>Remove Item</th><th>Product</th><th>Quantity</th><th>
		  Price Each</th></tr>";
	$Total = 0;
foreach($this->Orders as $Order) {
	$SQLstring = "SELECT * FROM "
		. $this->OrderTable[key($this->Orders)] . "
		WHERE productID='" . key($this->Orders) . "'";
	$QueryResult = @mysqli_query($this->DBConnect, $SQLstring)
		Or die("<p>Unable to perform the query.</p>"
		. "<p>Error code " . mysqli_errno($this->DBConnect)
		. ": " . mysqli_error($this->DBConnect)) . "</p>";
	$Row = mysqli_fetch_row($QueryResult);
	echo "<td align='center'>";
	echo "<a href='ShowCart.php?PHPSESSID=" . session_id()
		  . "&operation=removeItem&productID=" . $Row[0]
		  . "'>Remove</a></td>";
	echo "<td>{$Row[1]}</td>";
	echo "<td align='center''>$Order ";
	echo "</td>";
	printf("<td align='center'>$%.2f</td></tr>", $Row[3]);
	$Total += $Row[3] * $Order;
	next($this->Orders);

	echo "<td align='center' colspan='2'><strong>Your shopping
		  cart contains " . count($this->Orders)
		  . " product(s).</strong></td>";
	printf("<td align='center'><strong>Total: $%.2f</stong>
		   </td>", $Total);
	echo "</table>";
}
echo "<tr><td align='center'><a href='ShowCart.php?PHPSESSID="
	  . session_id() . "&operation=emptyCart'><strong>
	  Empty Cart</strong></a></td>";
}
}
public function removeItem() {
$ProdID = $_GET['productID'];
unset($this->Orders[$ProdID]);
unset($this->OrderTable[$ProdID]);
}
function emptyCart() {
$this->Orders = array();
$this->OrderTable = array();
}




}
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.