Über die Methode „query“ lassen sich beliebige SQL-Queries ausführen. Der Parameter „sSQL“ enthält das Query. Der Rückgabewert enthält entweder das Result Set als Array oder true / false im Erfolgs- bzw. Fehler-Fall. Bevor die Methode verwendet werden kann, müssen noch der Benutzername, das Passwort und ggf. der Hostname für die Datenbankverbindung festgelegt werden.
Update 01.03.2015:
– „mysql_“-Funktionen wurden entfern, da deprecated
– Verbindung wird nur noch einmal aufgebaut
Code:
function query($sSQL)
{
static $oConnection;
//Change user / password / database!
if(empty($oConnection))
$oConnection = new mysqli("localhost", "root", "password", "database");
$mResult = $oConnection->query($sSQL);
if($mResult instanceof mysqli_result)
{
$aResult = array();
while ($aRow = $mResult->fetch_assoc())
$aResult[] = $aRow;
$mResult->close();
$mResult = $aResult;
}
return $mResult;
}
{
static $oConnection;
//Change user / password / database!
if(empty($oConnection))
$oConnection = new mysqli("localhost", "root", "password", "database");
$mResult = $oConnection->query($sSQL);
if($mResult instanceof mysqli_result)
{
$aResult = array();
while ($aRow = $mResult->fetch_assoc())
$aResult[] = $aRow;
$mResult->close();
$mResult = $aResult;
}
return $mResult;
}
Beispiel:
var_dump(query("INSERT INTO clients (name) VALUES ('bla')")); //true
var_dump(query("UPDATE clients SET name = 'test' WHERE id = 51000")); //true
var_dump(query("SELECT * FROM clients")); //array
var_dump(query("THIS IS NOT A QUERY")); //false
var_dump(query("UPDATE clients SET name = 'test' WHERE id = 51000")); //true
var_dump(query("SELECT * FROM clients")); //array
var_dump(query("THIS IS NOT A QUERY")); //false
1.) „mysql_“-Funktionen sind deprecated und somit sollte man diese nicht mehr verwenden!
2.) Error-Handling?? (z.B.: „mysql_query“ gibt nicht nur bei SQL-Syntax-Fehlern „false“ zurück)
3.) man könnte auch eine Config-Klasse für die DB-Settings nutzen
4,) man könnte auch eine Singleton-Klasse erstellen, so das die Verbindung nicht bei jeder Query auf- / abgebaut werden muss…
PS: hier noch eine einfach Wrapper-Klasse, welche direkt via composer installiert werden kann 😉 https://github.com/voku/simple-mysqli
Mfg Lars
Hallo Lars,
vielen Dank für deinen konstruktiven Beitrag. Werde deine Tipps beim nächsten Update berücksichtigen.
Viele Grüße aus Fulda
Sebastian