Jump to content

Using $this when not in object context


j9sjam3

Recommended Posts

Hello.

I am now dumbfounded (once again).

I am using $this inside a class.

I honestly have no idea what is going on. If anyone could give me a pointer that would be brilliant.

/* 
  * List of functions in this class in order (construct and destruct are the only functions not in alphabetical order)
  		* Construct
	* BooleanValue
	* BuildColumns
	* Connect
	* Clean
	* Delete
	* Disconnect
	* EndTransaction
	* Error
	* Insert
	* IsConnected
	* Kill
	* LastInsertID
	* Log
	* Query
	* RollbackTransaction
	* RowCount
	* Select
	* StartTransaction
	* Update
	* Where
	* Destruct
*/

class MySQL extends MySQLi {
private $host			= HOST;
private $user			= USER;
private $pass			= PASS;
private	$data			= DATA;
private $port			= PORT;
private $charset		= CHARSET;

const quote				= "'"; // what quote to use

/* Internal vars */
private $lastID 		= "";
private $lastResult		= "";
private $queries		= "";
private $link			= 0;
private $timeStart		= 0;
private $timeEnd		= 0;
private $timeTotal		= 0;
private $errorString	= "";
private $errorNo		= 0;
private $in_transaction = false;
private $queryQueue		= "";


/* 
	* Construct
	* Starts the connection unless autoconnect = false
*/
public function __construct($autoconnect = true) {
	$autoconnect === true ? $this->Connect() : false;
}
/* 
	* End construct
***************************************************************************************************/

/*
	* BooleanValue
	* Determins whether the input is a boolean value, or can be converted into a boolean value
*/
static function BooleanValue($value) {
	$value = self::Clean($value);
	if(gettype($value) == "boolean") {
		if($value == true) {
			return true;
		} else {
			return false;
		}
	} elseif(is_numeric($value)) {
		if($value > 0) {
			return true;
		} else {
			return false;
		}
	} else {
		$str = strtoupper(mysqli_real_escape_string($this->link, trim($value)));
		if($str == "ON" || $str == "SELECTED" || $str == "CHECKED" || $str == "YES" || $str == "Y" || $str == "TRUE" || $str == "T") {
			return true;
		} else {
			return false;
		}
	}
}
/*
	* End BooleanValue
***************************************************************************************************/

/*
	* BuildColumns
	* Builds columns for use with SQL statements
*/
static function BuildColumns($columns, $addQuotes = true, $showAlias = true) {
	if($addQuotes) {
		$quote = self::quote;
	} else {
		$quote = "";
	}
	switch(gettype($columns)) {
		case "array":
			$sql = "";
			$i = 0;
			foreach($columns as $key => $value) {
				$key = self::Clean($key);
				$value = self::Clean($value);
				if($i == 0) {
					$sql = $quote.$value.$quote;
					$i = 1;
				} else {
					$sql .= ", ".$quote.$value.$quote;
				}
				if($showAlias && is_string($key) && (!empty($key))) {
					$sql .= " AS ".$quote.$key.$quote."'";
				}
			}
			break;
		case "string":
			$columns = self::Clean($columns);
			return $quote.$columns.$string;
			break;
		default;
			return false;
			break;
	}

	return $sql;

}
/*
	* End BuildColumns
***************************************************************************************************/

/*
	* Connect
	* Connects to the database
*/
public function Connect() {
	$this->link = @mysqli_connect($this->host, $this->user, $this->pass, $this->data, $this->port);
	$this->IsConnected();
}
/*
	* End Connect
***************************************************************************************************/

/*
	* Clean
	* Cleans input
*/
static function Clean($value) {
	$this->IsConnected();
	$value = ltrim($value);       
  		$value = rtrim($value);
  		$value = mysqli_real_escape_string($this->link, $value);
  		return $value;
}
/*
	* End Clean
***************************************************************************************************/

/* 
	* Delete
	* Deletes a record from the database
*/
public function Delete($table, $whereArray) {
	$sql = "DELETE FROM ".$table;
	$sql .= self::Where($whereArray);
}
/*
	* End Delete
***************************************************************************************************/

/*
	* Disconnect
	* Disconnects from the database
*/
public function Disconnect() {
	if($this->IsConnected()) {
		mysqli_close($this->link);
	}
}
/*
	* End disconnect
***************************************************************************************************/

/* 
	* EndTransaction
	* Ends the transaction, saving all data to the database
*/
public function EndTransaction() {
	$this->IsConnected();
	if($this->in_transaction) {
		if(!mysqli_query($this->link, "COMMIT")) {
			$this->RollbackTransaction();
		} else {
			$this->in_transaction = false;
			return true;
		}
	} else {
		$this->Error("Not in a transaction", -1);
		return false;
	}
}
/*
	* End EndTransaction
***************************************************************************************************/

/*
	* Error
	* Handles Errors
*/
public function Error($errstr = "", $errno = 0) {
	try {
		if(strlen($errstr) > 0) {
			$this->errorString = $errstr;
		} else {
			$this->errorString = @mysqli_error($this->link);
			if(!strlen($this->errorString) > 0) {
				$this->errorString = "Unknown error";
			}
		}
		if($errno <> 0) {
			$this->errorNo = $errno;
		} else {
			$this->errorNo = @mysqli_errno($this->link);
		}
	} catch(Exception $e) {
		$this->errorString = $e->getMessage();
		$this->errorNo = -999;
	}
	$this->Kill();
}
/*
	* End Error
***************************************************************************************************/

/*
	* Insert
	* Inserts a record into the database
*/
public function Insert($table, $valuesArray) {
	 $columns = self::BuildColumns(array_keys($valuesArray), false);
	 $values  = self::BuildColumns($valuesArray, true, false);
	 $sql = "INSERT INTO ".$table." (".$columns.") VALUES (".$values.")";
	 $this->queryQueue .= $sql;
}
/*
	* End Insert
***************************************************************************************************/

/*
	* IsConnected
	* Checks if there is a connection
*/
public function IsConnected() {
	if(@mysqli_ping($this->link)) {
		return true;
	} else {
		$this->Error();
		return false;
		$this->RollbackTransaction();
		$this->Kill("No connection present");
	}
}
/*
	* End IsConnected
***************************************************************************************************/

/*
	* Kill
	* Rollsback anychanges and kills the script
*/
public function Kill() {
	$this->RollbackTransaction();
	if(!$this->errorString) {
		$this->errorString = "Unknown";
	}
	if(!$this->errorNo) {
		$this->errorNo = -999;
	}
	die("<br /><br /><strong>An error has occured.<br />".$this->errorString."<br />".$this->errorNo);
}
/*
	* End Kill
***************************************************************************************************/

/*
	* LastInsertID
	* Returns the last inserted ID
*/
public function LastInsertID() {
	return $this->lastID;
}
/*
	* End LastInsertID
***************************************************************************************************/

/*
	* Log
	* Logs all MySQL queries
*/
static function Log($page, $utime, $wtime, $mysql_time, $sphinx_time, $mysql_count_queries, $mysql_queries) {
	/*$table = "mysql-".date("Ymd");
	$sql = "INSERT DELAYED INTO ".$table." (ip, page, utime, wtime, mysql_time, sphinx_time, mysql_count_queries, mysql_queries, user_agent) VALUES ("self::quote.$_SERVER['REMOTE_ADDR'].self::quote.", ".self::quote.$page.self::quote.", */
}
/*
	* End Log
***************************************************************************************************/

/*
	* Query
	* Exectues all queries
*/
public function Query($sql) {
	$this->IsConnected();

	$this->timeStart = microtime(true);

	$this->queries = $sql;
	$this->StartTransaction();
	$this->lastResult = @mysqli_query($this->link, $sql);
	if(!$this->lastResult) {
		$this->RollbackTransaction();
		$this->Error();
	}
	$this->EndTransaction();
	if(strpos(strtolower($sql), "insert") === 0) {
		$this->lastID = mysqli_insert_id($this->link);
		if($this->lastID === false) {
			$this->Error();
		} else {
			return $this->lastResult;
			//$this->queryQueue = "";
		}
	} elseif(strpos(strtolower($sql), "select") === 0) {
		$this->LastID = 0;
	}

	$this->timeEnd = microtime(true);
	$this->timeTotal = ($this->timeEnd - $this->timeStart);
	$removeE = explode('E', $this->timeTotal);
	$this->timeTotal = $removeE[0];
	echo $this->queryQueue;
}
/*
	* End Query
***************************************************************************************************/

/*
	* RollbackTransaction
	* Un-does the changes made
*/
private function RollbackTransaction() {
	$this->IsConnected();
	if(!mysqli_query($this->link, "ROLLBACK")) {
		$this->Error("Rollback failed. Manual cleanup required");
		return false;
	} else {
		$this->in_transaction = false;
		return true;
	}
}
/*
	* End RollbackTransaction
***************************************************************************************************/

/*
	* RowCount
	* Returns the amount of rows effected from the last query
*/
public function RowCount() {
	return mysqli_num_rows($this->lastResult);
}
/*
	* End RowCount
***************************************************************************************************/

/*
	* Select
	* Selects rows
	* USAGE:
	*	$result = $sql->Select("users", array("username" => "james"));
	*	while($row = mysqli_fetch_array($result)) {
	*		echo $row['password'];
	*	}
*/
public function Select($table, $whereArray = null, $columns = null, $sortColumns = null, $sortAscending = true, $limit = null) {
	if(!is_null($columns)) {
		$sql = self::BuildColumns($columns);
	} else {
		$sql = "*";
	}
	$sql = "SELECT ".$sql." FROM ".$table;
	if(is_array($whereArray)) {
		$sql .= self::Where($whereArray);
	}
	if(!is_null($sortColumns)) {
		$sql .= " ORDER BY ".self::BuildColumns($sortColumns, true, false). " ".($sortAscending ? "ASC" : "DESC");
	}
	if(!is_null($limit)) {
		$sql .= " LIMIT ".$limit;
	}
	self::Query($sql);
	$return = "";
	return $this->lastResult;
}
/*
	* End Select
***************************************************************************************************/

/*
	* StartTransaction
	* Starts the transaction
*/
private function StartTransaction() {
	if(!$this->IsConnected()) {
		die();
	}
	if(!$this->in_transaction) {
		if(!mysqli_query($this->link, "START TRANSACTION")) {
			$this->Error();
			return false;
		} else {
			$this->in_transaction = true;
			return true;
		}
	} else {
		$this->Error("Already in a transaction");
	}
}
/*
	* End StartTransaction
***************************************************************************************************/

/*
	* Update
	* Updates the rows
*/
public function Update($table, $valuesArray, $whereArray = null) {
	$sql = "";
	$i = 0;
	foreach($valuesArray as $key => $value) {
		$key = self::Clean($key);
		$value = self::Clean($value);
		if($i == 0) {
			$sql = $key." = ".self::quote.$value.self::quote;
			$i = 1;
		} else {
			$sql .= ", ".$key." = ".self::quote.$value.self::quote;
		}
	}
	$sql = "UPDATE ".$table." SET ".$sql;
	if(is_array($whereArray)) {
		$sql .= self::Where($whereArray);
	}
	self::Query($sql);
	return $this->lastResult;
}
/*
	* End Update
***************************************************************************************************/

/*
	* Where
	* Select rows where X
*/
public function Where($whereArray) {
	$where = "";
	foreach($whereArray as $key => $value) {
		$key = self::Clean($key);
		$value = self::Clean($value);
		if(strlen($where == 0)) {
			if(is_string($key)) {
				$where = " WHERE ".$key." = ".self::quote.$value.self::quote;
			} else {
				$where = " WHERE ".self::quote.$value.self::quote;
			}
		} else {
			if(is_string($key)) {
				$where .= " AND ".$key." = ".self::quote.$value.self::quote;
			} else {
				$where .= " AND ".self::quote.$value.self::quote;
			}
		}
	}
	return $where;
}
/* 
	* End where
***************************************************************************************************/

/*
	* Destruct
	* Closes the connection and cleans up
*/	
public function __destruct() {
	if($this->queryQueue) {
		$this->Query($this->queryQueue);
	}
	$this->Disconnect();
}
/*
	* End destruct
***************************************************************************************************/
}

 

The code I am using to get the error is this:

$sql = new Mysql;
$sql->Insert("users", array("username" => "James"));
$sql->Insert("users", array("username" => "fds"));
$sql->Insert("users", array("username" => "le"));

 

Thanks.

EDIT: Added code to call the error.

Link to comment
Share on other sites

"Fatal error: Using $this when not in object context in C:\wamp\www\excess\v2.7\new\library\mysql.class.php on line 162"

static function Clean($value) {
	$this->IsConnected(); [b]LINE 162[/b]
	$value = ltrim($value);       
  		$value = rtrim($value);
  		$value = mysqli_real_escape_string($this->link, $value);
  		return $value;
}

public function IsConnected() {
	if(mysqli_ping($this->link)) {
		return true;
	} else {
		$this->Error();
		$this->Kill("No connection present");
	}
}

Link to comment
Share on other sites

/* 
  * List of functions in this class in order (construct and destruct are the only functions not in alphabetical order)
  		* Construct
	* BooleanValue
	* BuildColumns
	* Connect
	* Clean
	* Delete
	* Disconnect
	* EndTransaction
	* Error
	* Insert
	* IsConnected
	* Kill
	* LastInsertID
	* Log
	* Query
	* RollbackTransaction
	* RowCount
	* Select
	* StartTransaction
	* Update
	* Where
	* Destruct
*/

class MySQL extends MySQLi {
private $host			= HOST;
private $user			= USER;
private $pass			= PASS;
private	$data			= DATA;
private $port			= PORT;
private $charset		= CHARSET;

const quote				= "'"; // what quote to use

/* Internal vars */
private $lastID 		= "";
private $lastResult		= "";
private $queries		= "";
private $link			= 0;
private $timeStart		= 0;
private $timeEnd		= 0;
private $timeTotal		= 0;
private $errorString	= "";
private $errorNo		= 0;
private $in_transaction = false;
private $queryQueue		= "";


/* 
	* Construct
	* Starts the connection unless autoconnect = false
*/
public function __construct($autoconnect = true) {
	$autoconnect === true ? $this->Connect() : false;
}
/* 
	* End construct
***************************************************************************************************/

/*
	* BooleanValue
	* Determins whether the input is a boolean value, or can be converted into a boolean value
*/
static function BooleanValue($value) {
	$value = self::Clean($value);
	if(gettype($value) == "boolean") {
		if($value == true) {
			return true;
		} else {
			return false;
		}
	} elseif(is_numeric($value)) {
		if($value > 0) {
			return true;
		} else {
			return false;
		}
	} else {
		$str = strtoupper(mysqli_real_escape_string($this->link, trim($value)));
		if($str == "ON" || $str == "SELECTED" || $str == "CHECKED" || $str == "YES" || $str == "Y" || $str == "TRUE" || $str == "T") {
			return true;
		} else {
			return false;
		}
	}
}
/*
	* End BooleanValue
***************************************************************************************************/

/*
	* BuildColumns
	* Builds columns for use with SQL statements
*/
static function BuildColumns($columns, $addQuotes = true, $showAlias = true) {
	if($addQuotes) {
		$quote = self::quote;
	} else {
		$quote = "";
	}
	switch(gettype($columns)) {
		case "array":
			$sql = "";
			$i = 0;
			foreach($columns as $key => $value) {
				$key = self::Clean($key);
				$value = self::Clean($value);
				if($i == 0) {
					$sql = $quote.$value.$quote;
					$i = 1;
				} else {
					$sql .= ", ".$quote.$value.$quote;
				}
				if($showAlias && is_string($key) && (!empty($key))) {
					$sql .= " AS ".$quote.$key.$quote."'";
				}
			}
			break;
		case "string":
			$columns = self::Clean($columns);
			$sql = $quote.$columns.$string;
			break;
		default;
			return false;
			break;
	}

	return $sql;

}
/*
	* End BuildColumns
***************************************************************************************************/

/*
	* Connect
	* Connects to the database
*/
public function Connect() {
	$this->link = @mysqli_connect($this->host, $this->user, $this->pass, $this->data, $this->port);
	$this->IsConnected();
}
/*
	* End Connect
***************************************************************************************************/

/*
	* Clean
	* Cleans input
*/
public function Clean($value) {
	$this->IsConnected();
	$value = ltrim($value);       
  		$value = rtrim($value);
  		$value = mysqli_real_escape_string($this->link, $value);
  		return $value;
}
/*
	* End Clean
***************************************************************************************************/

/* 
	* Delete
	* Deletes a record from the database
*/
public function Delete($table, $whereArray) {
	$sql = "DELETE FROM ".$table;
	$sql .= self::Where($whereArray);
}
/*
	* End Delete
***************************************************************************************************/

/*
	* Disconnect
	* Disconnects from the database
*/
public function Disconnect() {
	if($this->IsConnected()) {
		mysqli_close($this->link);
	}
}
/*
	* End disconnect
***************************************************************************************************/

/* 
	* EndTransaction
	* Ends the transaction, saving all data to the database
*/
public function EndTransaction() {
	$this->IsConnected();
	if($this->in_transaction) {
		if(!mysqli_query($this->link, "COMMIT")) {
			$this->RollbackTransaction();
		} else {
			$this->in_transaction = false;
			return true;
		}
	} else {
		$this->Error("Not in a transaction", -1);
		return false;
	}
}
/*
	* End EndTransaction
***************************************************************************************************/

/*
	* Error
	* Handles Errors
*/
public function Error($errstr = "", $errno = 0) {
	try {
		if(strlen($errstr) > 0) {
			$this->errorString = $errstr;
		} else {
			$this->errorString = @mysqli_error($this->link);
			if(!strlen($this->errorString) > 0) {
				$this->errorString = "Unknown error";
			}
		}
		if($errno <> 0) {
			$this->errorNo = $errno;
		} else {
			$this->errorNo = @mysqli_errno($this->link);
		}
	} catch(Exception $e) {
		$this->errorString = $e->getMessage();
		$this->errorNo = -999;
	}
	$this->Kill();
}
/*
	* End Error
***************************************************************************************************/

/*
	* Insert
	* Inserts a record into the database
*/
public function Insert($table, $valuesArray) {
	 echo "first step";
	 $columns = self::BuildColumns(array_keys($valuesArray), false);
	 echo "second step";
	 $values  = $this->BuildColumns($valuesArray, true, false);
	 $sql = "INSERT INTO ".$table." (".$columns.") VALUES (".$values.")";
	 echo $sql;
	 //$this->queryQueue .= $sql;
}
/*
	* End Insert
***************************************************************************************************/

/*
	* IsConnected
	* Checks if there is a connection
*/
public function IsConnected() {
	if(mysqli_ping($this->link)) {
		return true;
	} else {
		$this->Error();
	}
}
/*
	* End IsConnected
***************************************************************************************************/

/*
	* Kill
	* Rollsback anychanges and kills the script
*/
public function Kill() {
	if(!$this->errorString) {
		$this->errorString = "Unknown";
	}
	if(!$this->errorNo) {
		$this->errorNo = -999;
	}
	die("<br /><br /><strong>An error has occured.<br />".$this->errorString."<br />".$this->errorNo);
}
/*
	* End Kill
***************************************************************************************************/

/*
	* LastInsertID
	* Returns the last inserted ID
*/
public function LastInsertID() {
	return $this->lastID;
}
/*
	* End LastInsertID
***************************************************************************************************/

/*
	* Log
	* Logs all MySQL queries
*/
static function Log($page, $utime, $wtime, $mysql_time, $sphinx_time, $mysql_count_queries, $mysql_queries) {
	/*$table = "mysql-".date("Ymd");
	$sql = "INSERT DELAYED INTO ".$table." (ip, page, utime, wtime, mysql_time, sphinx_time, mysql_count_queries, mysql_queries, user_agent) VALUES ("self::quote.$_SERVER['REMOTE_ADDR'].self::quote.", ".self::quote.$page.self::quote.", */
}
/*
	* End Log
***************************************************************************************************/

/*
	* Query
	* Exectues all queries
*/
public function Query($sql) {
	$this->IsConnected();

	$this->timeStart = microtime(true);
	echo $sql;
	$this->queries = $sql;
	$this->StartTransaction();
	$this->lastResult = @mysqli_query($this->link, $sql);
	if(!$this->lastResult) {
		$this->RollbackTransaction();
		$this->Error();
	}
	$this->EndTransaction();
	if(strpos(strtolower($sql), "insert") === 0) {
		$this->lastID = mysqli_insert_id($this->link);
		if($this->lastID === false) {
			$this->Error();
		} else {
			return $this->lastResult;
			//$this->queryQueue = "";
		}
	} elseif(strpos(strtolower($sql), "select") === 0) {
		$this->LastID = 0;
	}

	$this->timeEnd = microtime(true);
	$this->timeTotal = ($this->timeEnd - $this->timeStart);
	$removeE = explode('E', $this->timeTotal);
	$this->timeTotal = $removeE[0];
	echo $this->queryQueue;
}
/*
	* End Query
***************************************************************************************************/

/*
	* RollbackTransaction
	* Un-does the changes made
*/
private function RollbackTransaction() {
	$this->IsConnected();
	if(!mysqli_query($this->link, "ROLLBACK")) {
		$this->Error("Rollback failed. Manual cleanup required");
		return false;
	} else {
		$this->in_transaction = false;
		return true;
	}
}
/*
	* End RollbackTransaction
***************************************************************************************************/

/*
	* RowCount
	* Returns the amount of rows effected from the last query
*/
public function RowCount() {
	return mysqli_num_rows($this->lastResult);
}
/*
	* End RowCount
***************************************************************************************************/

/*
	* Select
	* Selects rows
	* USAGE:
	*	$result = $sql->Select("users", array("username" => "james"));
	*	while($row = mysqli_fetch_array($result)) {
	*		echo $row['password'];
	*	}
*/
public function Select($table, $whereArray = null, $columns = null, $sortColumns = null, $sortAscending = true, $limit = null) {
	if(!is_null($columns)) {
		$sql = self::BuildColumns($columns);
	} else {
		$sql = "*";
	}
	$sql = "SELECT ".$sql." FROM ".$table;
	if(is_array($whereArray)) {
		$sql .= self::Where($whereArray);
	}
	if(!is_null($sortColumns)) {
		$sql .= " ORDER BY ".self::BuildColumns($sortColumns, true, false). " ".($sortAscending ? "ASC" : "DESC");
	}
	if(!is_null($limit)) {
		$sql .= " LIMIT ".$limit;
	}
	self::Query($sql);
	$return = "";
	return $this->lastResult;
}
/*
	* End Select
***************************************************************************************************/

/*
	* StartTransaction
	* Starts the transaction
*/
private function StartTransaction() {
	if(!$this->IsConnected()) {
		die();
	}
	if(!$this->in_transaction) {
		if(!mysqli_query($this->link, "START TRANSACTION")) {
			$this->Error();
			return false;
		} else {
			$this->in_transaction = true;
			return true;
		}
	} else {
		$this->Error("Already in a transaction");
	}
}
/*
	* End StartTransaction
***************************************************************************************************/

/*
	* Update
	* Updates the rows
*/
public function Update($table, $valuesArray, $whereArray = null) {
	$sql = "";
	$i = 0;
	foreach($valuesArray as $key => $value) {
		$key = self::Clean($key);
		$value = self::Clean($value);
		if($i == 0) {
			$sql = $key." = ".self::quote.$value.self::quote;
			$i = 1;
		} else {
			$sql .= ", ".$key." = ".self::quote.$value.self::quote;
		}
	}
	$sql = "UPDATE ".$table." SET ".$sql;
	if(is_array($whereArray)) {
		$sql .= self::Where($whereArray);
	}
	self::Query($sql);
	return $this->lastResult;
}
/*
	* End Update
***************************************************************************************************/

/*
	* Where
	* Select rows where X
*/
public function Where($whereArray) {
	$where = "";
	foreach($whereArray as $key => $value) {
		$key = self::Clean($key);
		$value = self::Clean($value);
		if(strlen($where == 0)) {
			if(is_string($key)) {
				$where = " WHERE ".$key." = ".self::quote.$value.self::quote;
			} else {
				$where = " WHERE ".self::quote.$value.self::quote;
			}
		} else {
			if(is_string($key)) {
				$where .= " AND ".$key." = ".self::quote.$value.self::quote;
			} else {
				$where .= " AND ".self::quote.$value.self::quote;
			}
		}
	}
	return $where;
}
/* 
	* End where
***************************************************************************************************/

/*
	* Destruct
	* Closes the connection and cleans up
*/	
public function __destruct() {
	if($this->queryQueue) {
		$this->Query($this->queryQueue);
	}
	$this->Disconnect();
}
/*
	* End destruct
***************************************************************************************************/
}

 

Cutdown:

Error - Using $this when not in object context in C:\wamp\www\excess\v2.7\new\library\mysql.class.php on line 164

Code for calling class:

$sql = new Mysql;
$sql->Insert("users", array("username" => "james", "password" => "Jsa"));

 

Clean function:

public function Clean($value) {
	$this->IsConnected();
	$value = ltrim($value);       
  		$value = rtrim($value);
  		$value = mysqli_real_escape_string($this->link, $value);
  		return $value;
}

Note: Tried using self as well.

 

Insert Function:

public function Insert($table, $valuesArray) {
	 echo "first step";
	 $columns = self::BuildColumns(array_keys($valuesArray), false);
	 echo "second step";
	 $values  = $this->BuildColumns($valuesArray, true, false);
	 $sql = "INSERT INTO ".$table." (".$columns.") VALUES (".$values.")";
	 echo $sql;
	 //$this->queryQueue .= $sql;
}

Note: Error is generated off buildColumns

 

Build Columns function:

static function BuildColumns($columns, $addQuotes = true, $showAlias = true) {
	if($addQuotes) {
		$quote = self::quote;
	} else {
		$quote = "";
	}
	switch(gettype($columns)) {
		case "array":
			$sql = "";
			$i = 0;
			foreach($columns as $key => $value) {
				$key = self::Clean($key);
				$value = self::Clean($value);
				if($i == 0) {
					$sql = $quote.$value.$quote;
					$i = 1;
				} else {
					$sql .= ", ".$quote.$value.$quote;
				}
				if($showAlias && is_string($key) && (!empty($key))) {
					$sql .= " AS ".$quote.$key.$quote."'";
				}
			}
			break;
		case "string":
			$columns = self::Clean($columns);
			$sql = $quote.$columns.$string;
			break;
		default;
			return false;
			break;
	}

	return $sql;

}

 

Cheers.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.