$wert) if($wert !== null && !is_string($wert)) $zeile[$spalte] = (string)$wert; return $zeile; } /* Alle Zeilen als Liste assoziativer Arrays, bei Fehlern false. */ function db_zeilen($dbconn, $sql, $params = array()) { $res = db_abfrage($dbconn, $sql, $params); if(!$res) return false; return array_map("db_als_text", mysqli_fetch_all($res, MYSQLI_ASSOC)); } /* Erste Zeile als assoziatives Array, null ohne Treffer, bei Fehlern false. */ function db_zeile($dbconn, $sql, $params = array()) { $res = db_abfrage($dbconn, $sql, $params); if(!$res) return false; return db_als_text(mysqli_fetch_assoc($res)); } /* * Zwei Spalten als Zuordnung erste => zweite, etwa für Auswahllisten * (SELECT id, anrede FROM anrede). Bei Fehlern false. */ function db_zuordnung($dbconn, $sql, $params = array()) { $res = db_abfrage($dbconn, $sql, $params); if(!$res) return false; $zuordnung = array(); while($zeile = mysqli_fetch_row($res)) $zuordnung[$zeile[0]] = $zeile[1] === null ? null : (string)$zeile[1]; return $zuordnung; } /* * Die Abfrage mit eingesetzten Werten als lesbarer Text - ausschließlich für * das Änderungsprotokoll (Tabelle log). Nie ausführen. */ function db_sql_text($dbconn, $sql, $params = array()) { $teile = explode("?", $sql); $text = array_shift($teile); foreach(array_values($params) as $i => $wert) { if($wert === null) $text .= "NULL"; else $text .= "'".mysqli_real_escape_string($dbconn, (string)$wert)."'"; $text .= isset($teile[$i]) ? $teile[$i] : ""; } return $text; } /* * Text als Praefix-Suchmuster fuer LIKE. % und _ waeren darin sonst * Platzhalter; das Fluchtzeichen ist der Backslash. */ function db_like_praefix($text) { return str_replace(array("\\", "%", "_"), array("\\\\", "\%", "\_"), (string)$text)."%"; } /* Erste Spalte der ersten Zeile, null ohne Treffer, bei Fehlern false. */ function db_wert($dbconn, $sql, $params = array()) { $res = db_abfrage($dbconn, $sql, $params); if(!$res) return false; $zeile = mysqli_fetch_row($res); return $zeile === null || $zeile[0] === null ? null : (string)$zeile[0]; }