phpbar.de logo

Mailinglisten-Archive

[php] hatter oder hatter nicht

[php] hatter oder hatter nicht

Cornelia Boenigk php_(at)_phpcenter.de
Sat, 26 Jan 2002 01:17:46 +0100


Hallo Nachteulen

Das ist unsere Standard-Update-Funktion, an die ein sql-String
uebergeben wird.

# Gibt "false" zurück, falls Update fehl schlägt
Function pg_Update($squ,$db=DEF_DATABASE_NAME) {
 global $CONN;
 // hier kommt der Connect pipapo, wenn der fehlschlaegt, wird einer
hinterhergeschoben
CONNECT($db);
 if (!($result=_(at)_pg_Exec($CONN[$db][0], $squ))) {
  pg_reconnect($db);
  if (!($result=_(at)_pg_Exec($CONN[$db][0], $squ))) {
   error_log(date("[Y-m-d H:i:s ").microtime()."] Fehler bei
Update...Email und so...);}}
 if ($result) {
// die Funktion entspricht den affected rows bei mysql
  $rws=_(at)_pg_cmdtuples($result);}
 else {
  $rws=false;}
 return $rws;}

Wenn ein Update aus irgendwelchen Gruenden nicht klappt,
$upd = irgendein kranker Update
ist $upd false und ich kann mit if (!$upd) weitermachen. In einer
Tabelle, in der eher upgedated als inserted wird, habe ich das auch so
gemacht, dass erstmal ein Update probiert wird, und wenn der
fehlschlaegt, dann wird ein Insert gemacht. Beispiel ein skript, das
die referer zaehlt.

if ($url) {
 $check = strstr($url,$domain);
 if (empty($check)){
  $upd = pg_Update("update wrreferer set klicks_in = klicks_in+1 where
url_ref = '$url';");
  if (!$upd) {
   $ins pg_Insert("insert into wrreferer values ('$url', 1);");
  }
 }
}

(pg_insert ist auch selbstgestrickt, mit dem $CONN-Vorspann)

Hilft Euch die Auskunft weiter, oder soll ich was testen?

> "PostgreSQL - professionell und praxisnah",
Das kann man empfehlen.

Gruss
Conni


php::bar PHP Wiki   -   Listenarchive