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;
}


Comments