Inhaltsverzeichnis

dbSet()

Während der Befragung können mit dbSet() Daten in die Datenbank für Inhalte geschrieben werden. Falls schon Eintrag mit demselben Schlüssel existiert, wird dieser aktualisiert – sonst wird ein neuer Eintrag angelegt.

Mit der Funktion kann auch ein Eintrag aus der Datenbank gelöscht werden.

void dbSet(string Schlüssel, false|string|array Daten)

Hinweis: Jeder Eintrag in der Datenbank besitzt einen Zeitstempel mit Datum und Uhrzeit der letzten Änderung. Bei einer Aktualisierung mittels dbSet() wird auch der Zeitstempel aktualisiert (auch dann, wenn die Daten dieselben bleiben!). Falls Sie nur den Zeitstempel aktualisieren möchten, verwenden Sie dbTouch.

Beispiel 1

Der folgende PHP-Code speichert Alter (Variable „SD04_01“) und Geschlecht (Variable „SD02“) unter der Kennung des aktuellen Teilnehmers, damit diese Variablen in einer späteren Erhebungwelle wieder aufgerufen werden können (Datenfragmente im PHP-Code verwenden).

$data = array(
  value('SD04_01'),
  value('SD02')
);
dbSet(caseSerial(), $data);

Beispiel 2

Der folgende PHP-Code überprüft, ob ein Eintrag mit der übergebenen Referenz (Der Link zum Fragebogen) existiert. Die Referenz kodiert ein Unternehmen. Nur wenn bisher max. 10 Personen aus diesem Unternehmen teilgenommen haben, darf der Teilnehmer die Befragung fortsetzen.

$info = dbGet(reference());
// Kein Zugang ohne gültige Referenz
if ($info == false) {
  text('invalidLink');
  buttonHide();
  pageStop();
}
// In der Datenbank ist im ersten Feld der Name des Unternehmens
// und im zweiten Feld die Anzahl der Teilnehmer hinterlegt.
replace('%unternehmen%', $info[0]);  // Den Platzhalter %unternehmen% vorbereiten
if ($info[1] >= 10) {
  text('tooMuch');
  buttonHide();
  pageStop();
}

Der Zähler wird erst auf den letzten Seiten des Fragebogens hochgezählt – ansonsten zählen auch abgebrochene Interviews.

// Den Zähler eins hochzählen
if (!isset($counted)) {
  $info = dbGet(reference());
  $info[1]++;
  dbSet(reference(), $info);
  // Zusammen mit isset() dafür sorgen, dass nur einmal gezählt wird
  $counted = true;
  registerVariable('counted');
}

Beispiel 3

Evtl. soll der Eintrag zur Referenz aus Beispiel 2 auch einfach gelöscht werden, wenn der erste Teilnehmer aus dem Unternehmen den Fragebogen ausgefüllt hat. Dazu wird der zweite PHP-Code wie folgt modifiziert.

dbSet(reference(), false);