News-Feed News durchsuchen:
Howto - DWFormmailer® SQL-Schnittstelle
10.09.2011 - 12:00 Uhr
 

Howto - SQL-Schnittstelle
Wie aktiviere ich die SQL-Schnittstelle?

Ab sofort können Sie über die SQL-Schnittstelle ganz einfach die übertragenen Formulardaten in eine MySql Datenbank ihrer Wahl senden.

Voraussetzung: gültige DWFormmailer® Lizenz und upgrade (einmalige Freischaltung) SQL-Schnittstelle. Webspace mit PHP Unterstützung und MySQL Datenbank

1. Richten Sie zuerst ihr Formular für die Übertragung ein.

Im Schritt 2 des DWFormgenerators schalten Sie einfach nur den CSV/XLS Hauptschalter auf "on". Wollen Sie aber nicht alle Daten sondern nur bestimmte Felder übertragen klicken Sie noch zusätzlich auf csv in den einzelnen Zeilen der gewünschten Felder.

2. SQL-Schnittstelle im Kundenbereich einrichten

Im Kundenbereich -> Einstellungen -> SQL-Schnittstelle
finden Sie auch die unten dargestellte SQL-Api, die Sie per Drag und Drop kopieren und z.B. als "form_to_db.php" in ein Verzeichnis ihres Webaccounts speichern.
Sie müssen nur die MySql Zugangsdaten im Script an ihre Datenbank anpassen. Geben Sie nun die komplette URL z.B. http://www.yourDomain/form_to_db.php
bei "URL zu ihrer sql API:" ein und klicken auf "Daten ändern".
Die Feldnamen aus dem Formular müssen mit den Feldnamen ihrer Datenbank übereinstimmen. Nicht übereinstimmende Feldnamen werden einfach ignoriert und somit auch nicht in der Datenbank gepeichert.

 

SQL-Api - Version for PHP4, PHP5


<?php // $Revision: 1.0.4

/************************************************************************/
/* DWFormmailer                        last update 16.12.2017 14:00:00  */
/* ============                                                         */
/* Datei -> /form_to_db.php - externe Datenbankschnittstelle            */
/* Copyright (c) by Wolfgang Dürr                                       */
/* https://www.dw-formmailer.de                                         */
/* mailto:webmaster@dw-formmailer.de                                    */
/* Version für PHP4, PHP5                                               */
/************************************************************************/
error_reporting(E_ALL);
/*********************************************************/
/* Konfiguration des Programms                           */
/*********************************************************/

// MySql Zugangsdaten
$dw_hostname        = "localhost";        // Hostname default: localhost
$dw_mysqluser        = "Username";        // MySql Username
$dw_mysqlpw        = "Passwort";        // MySql Passwort
$dw_db            = "Datenbankname";    // der Datenbankname
$dw_table        = "Name_der_Tabelle";    // Name der MySql Tabelle

/*********************************************************/
/* ab hier nichts mehr verändern                         */
/*********************************************************/

// Datenbankverbindung herstellen
$dw_db_link = @mysql_connect($dw_hostname, $dw_mysqluser, $dw_mysqlpw);

// prüfe MySql Verbindung
if (!$dw_db_link) {
    print_r('Verbindung schlug fehl: ' . mysql_error());
    exit();
}

// Programm starten, wenn $_POST Daten vorhanden
if ($_POST) {
   // Tabellennamen setzen, wenn hidden Feld 'dw_table' vorhanden
   // Sie können über ein verstecktes Feld im Formular verschiedene Tabellen ansprechen
   // Einfach ein verstecktes Feld mit Feldname 'dw_table'
   // und als Wert den Namen ihrer Tabelle ihrem Formular hinzufügen.
    if ( isset($_POST['dw_table']) && $_POST['dw_table'] != '' ) {
        $dw_table = $_POST['dw_table'];
    }
    @mysql_select_db($dw_db, $dw_db_link);
    if ( isset($_POST['dw_sql_charset']) && $_POST['dw_sql_charset']=='utf-8' ) {
        @mysql_query("SET NAMES 'utf8'", $dw_db_link);
    }
   // Einlesen der Spaltennamen
    $sql = @mysql_query ("SHOW FIELDS FROM `" .$dw_table. "`;", $dw_db_link);
    while ($row = @mysql_fetch_array($sql)) {
        $trow_table_def[] = $row;
    }
   // Erstelle das Update Statement
    $i=0; $keys=""; $values="";
    while ($i < count($trow_table_def)) {
        $row_table_def    = $trow_table_def[$i];
        $field        = $row_table_def['Field'];
        $keys .= "`".$field."`,";
        $field = str_replace (" ", "_", $field);
        if(!ini_get ('magic_quotes_gpc')) {
            if (isset($_POST[$field])) {
                $_POST[$field] = addslashes($_POST[$field]);
            }
        }
        if ($field=="Date") {
            $values .= "CURRENT_TIMESTAMP,";
        } else {
            $values .= "'".(isset($_POST[$field]) ? $_POST[$field] : '')."',";
        }
        $i++;
    }
    $keys = preg_replace ("',$'", "", $keys);
    $values = preg_replace ("',$'", "", $values);
    $insert = "INSERT INTO `".$dw_db."`.`".$dw_table."` (".$keys.") VALUES (".$values.");";
   // Datensatz in Datenbank einfügen
    $str = mysql_query($insert, $dw_db_link);
} // endif
?>

 Kommentar hinterlassen