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
https://forums.phpfreaks.com/topic/232297-using-this-when-not-in-object-context/
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");
	}
}

/* 
  * 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.

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.