TorneEngine har fått ytterligare en funktion för att förenkla livet – saker man borde ha tänkt på tidigare… Denna gången handlar det om att snabbt kunna skicka in SQL-frågor i en databas och samtidigt slippa tänka själv. Det sparar åtminstone en del tid och en del kodutrymme.

Exempel:

Parametrar och dess värden lagras i en array. Dessa vill jag snabbt kunna skicka in i en databas, antingen för att modifiera värden, eller för att lägga in helt nya.

$sql[username] = "Pelle";
$sql[password] = "p4ssw0rd123";

Implodefunktionen fixar det galant! Den skall dock användas från en class, så att den inte förstör PHPs befintliga implodefunktion.

$ins = $tornevall->db->implode($sql);
$upd = $tornevall->db->implode($sql, "update");
echo "INSERT INTO test ($ins[0]) VALUES ($ins[1])\n";
echo "UPDATE test SET $upd[0] WHERE userid = 3\n";

Resultatet blir fantastiskt bekvämt enligt nedan!

INSERT INTO test (username, password) VALUES ('Pelle', 'p4ssw0rd123')
UPDATE test SET username = 'Pelle', password = 'p4ssw0rd123' WHERE userid = 3
/*
	Implode columns and their values

	Returned data:

	INPUT TYPE: Insert
	$array[0] - "Column names"
	$array[1] - "Column values"

	INPUT TYPE: Update
	$array[0] - "Columns = '$values'"

	- Tornevall
*/
function implode($sql = array(), $type = "insert")
{
	foreach ($sql as $p => $v)
	{
		$inserts[] = $p;
		$values[] = "'" . $this->injection($v) . "'";
		$updates[] = "$p = '".$this->injection($v)."'";
	}
	if ($type == "insert")
	{
		$ret = array(implode(", ", $inserts), implode(", ", $values));
	}
	else
	{
		$ret = array(implode(", ", $updates));
	}
	return $ret;
}