Ankündigung

Einklappen
Keine Ankündigung bisher.

DB-Inserts/Updates prüfen und ausführen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DB-Inserts/Updates prüfen und ausführen

    Servus Leute

    Hab gedacht ich werf auch ein paar kleine Codesnippets von mir rein. Die hier sind dafür da, Daten eines Datenbank-Inserts oder Updates zu prüfen, beziehungsweise die Daten nachher einzutragen.

    Als erstes die Funktion für den Insert und das Update:
    PHP-Code:
     <?php
        
    public static function db_insert_data($table$ins_hash)    {
            
    $cols implode(","array_keys($ins_hash));
            
    $data implode(","array_map(array("Mysql""sql_check_values"), array_values($ins_hash)));

            
    $sql "INSERT INTO ".$table." (".$cols.") VALUES (".$data.");";
            
    $query = @mysql_query($sql)
                or die(
    mysql_error());
            return(!
    $query false true);
        }
        
    /***********************************************/
        
    public static function db_update_data($table$upd_hash$condition "")    {
            
    $temp array_map(array("Mysql""prepare_update_hash"), array_keys($upd_hash), array_values($upd_hash));
            
    $settings implode(","array_values($temp));

            
    $condition = empty($condition) ? "" " WHERE ".$condition;

            
    $sql "UPDATE ".$table." SET ".$settings.$condition.";";

            
    $query = @mysql_query($sql)
                or die(
    mysql_error());
            return(!
    $query false true);
        }
    ?>
    Um die Werte für den Update im Muster RowName=NewValue anzuordnen brauche ich noch eine simple Callbackfunktion:

    PHP-Code:
        public static function prepare_update_hash($val1$val2)    { 
            return 
    $val1."=".Mysql::sql_check_values($val2);
        } 
    Schlussendlich werden die Werte in der Funktion sql_check_values geprüft und gegebenenfalls angepasst:

    PHP-Code:
        public static function sql_check_values($value) {
            if(
    get_magic_quotes_gpc()) $value stripslashes($value);

            if(!
    is_numeric($value)) $value "'"mysql_real_escape_string($value) ."'";

            return 
    $value;
        } 
    Den Insert und den Update ruft man folgendermassen auf:
    PHP-Code:
        //Daten über Insert in die Datenbank einfügen
        
    $insert_hash['ExampleID'] = 1;
        
    $insert_hash['ExampleName'] = "Foo Bar";
        
    $insert_hash['ExampleDescription'] = "Some strange guy";

        
    db_insert_data("tbl_test"$insert_hash);

        
    //Daten über update in der Datenbank aktualisieren
        
    $update_hash['ExampleName']  = "Foobar Ryan";
        
    $update_hash['ExampleDescription'] = "Some soldier";

        
    db_update_data("tbl_test"$update_hash"WHERE ExampleID=1"); 
    So das wäre geschafft Immer her mit Optimierungsvorschlägen, ausser wenns Kritik an meinem Deutsch ist ;p

    PS: Das public static kommt von daher, dass ich das Ganze in einer Klasse mit dem namen Mysql habe. Denkt euch einfach
    class Mysql {
    Das ganze Zeugs
    }
    drum herum
    Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
    Mark Twain

  • #2
    hmm sorry hab falsch gepostet irgenwie
    Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.

    Kommentar

    Lädt...
    X