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:
Um die Werte für den Update im Muster RowName=NewValue anzuordnen brauche ich noch eine simple Callbackfunktion:
Schlussendlich werden die Werte in der Funktion sql_check_values geprüft und gegebenenfalls angepasst:
Den Insert und den Update ruft man folgendermassen auf:
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
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);
}
?>
PHP-Code:
public static function prepare_update_hash($val1, $val2) {
return $val1."=".Mysql::sql_check_values($val2);
}
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;
}
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");
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
Kommentar