PHP: MySQL Query Funktion

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

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

2 Gedanken zu „PHP: MySQL Query Funktion“

  1. 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

Schreibe einen Kommentar