function jotform_db2dump($apiKey, $format, $formTitle, $questions, $submissions)
{
    // get a list of questions
    $new_questions = array();
    $ignored_fields = array("control_head", "control_button", "control_pagebreak", "control_collapse", "control_text");
    $i = 0;
    foreach ($questions as $q) {
        if (!in_array($q['type'], $ignored_fields) && $q['text'] != "" && $q['text'] != "....") {
            array_push($new_questions, $q);
            $ordered_questions[$q['order']] = $i++;
        }
    }
    $questions = $new_questions;
    // CREATE TABLE STATEMENT
    $table = mysql_fieldname_format($formTitle);
    $sql .= "IF NOT EXISTS (SELECT NAME FROM SYSIBM.SYSTABLES WHERE NAME=`" . $table . "`)\nTHEN\n";
    $sql .= "CREATE TABLE `" . $table . "`(\n";
    $fields_sql = array();
    $fields = array();
    foreach ($ordered_questions as $order => $i) {
        $mysql_type = "varchar(255)";
        if ($questions[$i]['type'] == "control_textarea") {
            $mysql_type = "text";
        }
        array_push($fields, $questions[$i]['text']);
        array_push($fields_sql, "\t`" . mysql_fieldname_format($questions[$i]['text']) . "` " . $mysql_type);
    }
    $sql .= "\t`submissionID` BIGINT,\n";
    $sql .= implode(",\n", $fields_sql);
    $sql .= ",\n\tPRIMARY KEY(submissionID)";
    $sql .= ")\nEND IF\n";
    // INSERT / REPLACE STATEMENT
    foreach ($submissions as $s) {
        $insert = "INSERT IGNORE INTO  `{$table}` (\n";
        $keys = array("`submissionID`");
        $values = array($s["id"]);
        $answer = array();
        foreach ($s['answers'] as $a) {
            $answer[$a['text']] = $a['answer'];
        }
        foreach ($fields as $k) {
            if ($k != "" && $k != "....") {
                array_push($keys, "`" . mysql_fieldname_format($k) . "`");
                if (is_array($answer[$k])) {
                    $a = implode(",", $answer[$k]);
                } else {
                    $a = $answer[$k];
                }
                array_push($values, "'" . my_mysql_real_escape_string($a) . "'");
            }
        }
        $insert .= implode(", ", $keys);
        $insert .= "\n) VALUES (\n";
        $insert .= implode(", ", $values);
        $insert .= "\n);\n\n";
        $sql .= $insert;
    }
    return $sql;
}
function jotform_postgresqldump($apiKey, $format, $formTitle, $questions, $submissions)
{
    // get a list of questions
    $new_questions = array();
    $ignored_fields = array("control_head", "control_button", "control_pagebreak", "control_collapse", "control_text");
    $i = 0;
    foreach ($questions as $q) {
        if (!in_array($q['type'], $ignored_fields) && $q['text'] != "" && $q['text'] != "....") {
            array_push($new_questions, $q);
            $ordered_questions[$q['order']] = $i++;
        }
    }
    $questions = $new_questions;
    // CREATE TABLE STATEMENT
    $table = mysql_fieldname_format($formTitle);
    $sql .= "CREATE TABLE IF NOT EXISTS \"" . $table . "\" (\n";
    $fields_sql = array();
    $fields = array();
    foreach ($ordered_questions as $order => $i) {
        $mysql_type = "varchar(255)";
        if ($questions[$i]['type'] == "control_textarea") {
            $mysql_type = "text";
        }
        array_push($fields, $questions[$i]['text']);
        array_push($fields_sql, "\t\"" . mysql_fieldname_format($questions[$i]['text']) . "\" " . $mysql_type);
    }
    $sql .= "\t\"submissionID\" bigserial primary key,\n";
    $sql .= implode(",\n", $fields_sql);
    $sql .= "\n);\n\n";
    // INSERT / REPLACE STATEMENT
    foreach ($submissions as $s) {
        $insert = "INSERT INTO \"" . $table . "\" (";
        $keys = array("\"submissionID\"");
        $values = array($s["id"]);
        $answer = array();
        foreach ($s['answers'] as $a) {
            $answer[$a['text']] = $a['answer'];
        }
        foreach ($fields as $k) {
            if ($k != "" && $k != "....") {
                array_push($keys, "\"" . mysql_fieldname_format($k) . "\"");
                if (is_array($answer[$k])) {
                    $a = implode(",", $answer[$k]);
                } else {
                    $a = $answer[$k];
                }
                array_push($values, "'" . my_mysql_real_escape_string($a) . "'");
            }
        }
        $insert .= implode(", ", $keys);
        $insert .= ")\nVALUES (";
        $insert .= implode(", ", $values);
        $insert .= ");\n\n";
        $sql .= $insert;
    }
    return $sql;
}
Example #3
0
function jotform_mysqldump($apiKey, $formID)
{
    // get a list of questions
    $jotformAPI = new JotForm($apiKey);
    $form = $jotformAPI->getForm($formID);
    $formTitle = $form['title'];
    $questions = $jotformAPI->getFormQuestions($formID);
    $new_questions = array();
    $ignored_fields = array("control_head", "control_button", "control_pagebreak", "control_collapse", "control_text");
    $i = 0;
    foreach ($questions as $q) {
        if (!in_array($q['type'], $ignored_fields)) {
            array_push($new_questions, $q);
            $ordered_questions[$q['order']] = $i++;
        }
    }
    $questions = $new_questions;
    //print "<pre>";
    //print_r( $questions );
    // prepare CREATE TABLE code
    $table = mysql_fieldname_format($formTitle);
    $sql = "CREATE TABLE IF NOT EXISTS `" . $table . "` (\n";
    $fields_sql = array();
    $fields = array();
    foreach ($ordered_questions as $order => $i) {
        $mysql_type = "varchar(255)";
        if ($questions[$i]['type'] == "control_textarea") {
            $mysql_type = "text";
        }
        array_push($fields, $questions[$i]['text']);
        array_push($fields_sql, "\t`" . mysql_fieldname_format($questions[$i]['text']) . "` " . $mysql_type);
    }
    $sql .= implode(",\n", $fields_sql);
    $sql .= "\n);\n\n";
    //print $sql;
    // get submission data
    $submissions = $jotformAPI->getFormSubmissions($formID);
    //print_r($submissions);
    foreach ($submissions as $s) {
        $insert = "INSERT IGNORE INTO  `{$table}` (\n";
        $keys = array();
        $values = array();
        foreach ($fields as $k) {
            //print "<li>$k".$s['fields'][$k];
            array_push($keys, "`" . mysql_fieldname_format($k) . "`");
            array_push($values, "'" . mysql_real_escape_string($s['fields'][$k]) . "'");
        }
        $insert .= implode(", ", $keys);
        $insert .= "\n) VALUES (\n";
        $insert .= implode(", ", $values);
        $insert .= "\n);\n\n";
        $sql .= $insert;
    }
    return $sql;
}
function jotform_mongodbdump($apiKey, $format, $formTitle, $questions, $submissions)
{
    // get a list of questions
    $new_questions = array();
    $ignored_fields = array("control_head", "control_button", "control_pagebreak", "control_collapse", "control_text");
    $i = 0;
    foreach ($questions as $q) {
        if (!in_array($q['type'], $ignored_fields) && $q['text'] != "" && $q['text'] != "....") {
            array_push($new_questions, $q);
            $ordered_questions[$q['order']] = $i++;
        }
    }
    $questions = $new_questions;
    $fields = array();
    foreach ($ordered_questions as $order => $i) {
        array_push($fields, $questions[$i]['text']);
    }
    $sql = array();
    foreach ($submissions as $s) {
        $insert = array();
        $keys = array("submission_id");
        $values = array($s["id"]);
        $answer = array();
        foreach ($s['answers'] as $a) {
            $answer[$a['text']] = $a['answer'];
        }
        foreach ($fields as $k) {
            if ($k != "" && $k != "....") {
                array_push($keys, "" . mysql_fieldname_format($k) . "");
                if (is_array($answer[$k])) {
                    $a = implode(",", $answer[$k]);
                } else {
                    $a = $answer[$k];
                }
                array_push($values, "" . my_mysql_real_escape_string($a) . "");
            }
        }
        for ($i = 0; $i < count($keys); $i++) {
            $insert[$keys[$i]] = $values[$i];
        }
        array_push($sql, $insert);
    }
    return $sql;
}
function jotform_sqlserverdump($apiKey, $format, $formTitle, $questions, $submissions)
{
    // get a list of questions
    $new_questions = array();
    $ignored_fields = array("control_head", "control_button", "control_pagebreak", "control_collapse", "control_text");
    $i = 0;
    foreach ($questions as $q) {
        if (!in_array($q['type'], $ignored_fields) && $q['text'] != "" && $q['text'] != "....") {
            array_push($new_questions, $q);
            $ordered_questions[$q['order']] = $i++;
        }
    }
    $questions = $new_questions;
    // CREATE TABLE STATEMENT
    $table = mysql_fieldname_format($formTitle);
    $sql .= "IF NOT EXISTS\n(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID('" . $table . "') AND type in (N'U'))\nBEGIN\n";
    $sql .= "CREATE TABLE " . $table . "\n(\n";
    $fields_sql = array();
    $fields = array();
    foreach ($ordered_questions as $order => $i) {
        $mysql_type = "varchar(255)";
        if ($questions[$i]['type'] == "control_textarea") {
            $mysql_type = "text";
        }
        array_push($fields, $questions[$i]['text']);
        array_push($fields_sql, "\t" . mysql_fieldname_format($questions[$i]['text']) . " " . $mysql_type);
    }
    $sql .= "\tsubmissionID bigint PRIMARY KEY,\n";
    $sql .= implode(",\n", $fields_sql);
    $sql .= "\n);";
    $sql .= "\nEND";
    $sql .= "\nGO\n\n";
    // INSERT / REPLACE STATEMENT
    foreach ($submissions as $s) {
        $insert = "IF NOT EXISTS\n(SELECT * FROM " . $table . " WHERE submissionID=" . $s["id"] . ")\n";
        $insert .= "\tINSERT INTO " . $table . "(";
        $keys = array("submissionID");
        $values = array($s["id"]);
        $answer = array();
        foreach ($s['answers'] as $a) {
            $answer[$a['text']] = $a['answer'];
        }
        foreach ($fields as $k) {
            if ($k != "" && $k != "....") {
                array_push($keys, mysql_fieldname_format($k));
                if (is_array($answer[$k])) {
                    $a = implode(",", $answer[$k]);
                } else {
                    $a = $answer[$k];
                }
                array_push($values, "'" . my_mysql_real_escape_string($a) . "'");
            }
        }
        $insert .= implode(", ", $keys);
        $insert .= ")\n\tVALUES (";
        $insert .= implode(", ", $values);
        $insert .= ")\nELSE\n";
        $insert .= "\tUPDATE " . $table . "\n\tSET ";
        for ($i = 1; $i < count($keys); $i++) {
            $insert .= $keys[$i] . "=" . $values[$i];
            if ($i < count($keys) - 1) {
                $insert .= ", ";
            }
        }
        $insert .= "\n\tWHERE submissionID=" . $s["id"] . "\n\n";
        $sql .= $insert;
    }
    return $sql;
}
function jotform_sybasedump($apiKey, $format, $formTitle, $questions, $submissions)
{
    // get a list of questions
    $new_questions = array();
    $ignored_fields = array("control_head", "control_button", "control_pagebreak", "control_collapse", "control_text");
    $i = 0;
    foreach ($questions as $q) {
        if (!in_array($q['type'], $ignored_fields) && $q['text'] != "" && $q['text'] != "....") {
            array_push($new_questions, $q);
            $ordered_questions[$q['order']] = $i++;
        }
    }
    $questions = $new_questions;
    // CREATE TABLE STATEMENT
    $table = mysql_fieldname_format($formTitle);
    $sql .= "IF NOT EXISTS (\n\tSELECT 1\n\tFROM sysobjects\n\tWHERE name=" . $table . "\n\tAND type=\"U\"\n)\n";
    $sql .= "EXECUTE(\"CREATE TABLE " . $table . " (\n";
    $fields_sql = array();
    $fields = array();
    foreach ($ordered_questions as $order => $i) {
        $mysql_type = "varchar(255)";
        if ($questions[$i]['type'] == "control_textarea") {
            $mysql_type = "text";
        }
        array_push($fields, $questions[$i]['text']);
        array_push($fields_sql, "\t`" . mysql_fieldname_format($questions[$i]['text']) . "` " . $mysql_type);
    }
    $sql .= "\t`submissionID` bigint,\n";
    $sql .= implode(",\n", $fields_sql);
    $sql .= ",\n\tPRIMARY KEY(submissionID)";
    $sql .= ")\")\nGO\n\n";
    // INSERT / REPLACE STATEMENT
    foreach ($submissions as $s) {
        $insert = "INSERT INTO  `{$table}` (";
        $keys = array("`submissionID`");
        $values = array($s["id"]);
        $answer = array();
        foreach ($s['answers'] as $a) {
            $answer[$a['text']] = $a['answer'];
        }
        foreach ($fields as $k) {
            if ($k != "" && $k != "....") {
                array_push($keys, "`" . mysql_fieldname_format($k) . "`");
                if (is_array($answer[$k])) {
                    $a = implode(",", $answer[$k]);
                } else {
                    $a = $answer[$k];
                }
                array_push($values, "'" . my_mysql_real_escape_string($a) . "'");
            }
        }
        $insert .= implode(", ", $keys) . ")\n";
        $insert .= "\t ON EXISTING UPDATE `" . $table . "`\n\t SET ";
        for ($i = 0; $i < count($keys); $i++) {
            $insert .= $keys[$i] . "=" . $values[$i];
            if ($i < count($keys) - 1) {
                $insert .= " AND ";
            }
        }
        $insert .= "\nVALUES (";
        $insert .= implode(", ", $values);
        $insert .= ");\n\n";
        $sql .= $insert;
    }
    return $sql;
}
function jotform_informixdump($apiKey, $format, $formTitle, $questions, $submissions)
{
    // get a list of questions
    $new_questions = array();
    $ignored_fields = array("control_head", "control_button", "control_pagebreak", "control_collapse", "control_text");
    $i = 0;
    foreach ($questions as $q) {
        if (!in_array($q['type'], $ignored_fields) && $q['text'] != "" && $q['text'] != "....") {
            array_push($new_questions, $q);
            $ordered_questions[$q['order']] = $i++;
        }
    }
    $questions = $new_questions;
    // CREATE TABLE STATEMENT
    $table = mysql_fieldname_format($formTitle);
    $sql .= "CREATE TABLE IF NOT EXISTS `" . $table . "` (\n";
    $fields_sql = array();
    $fields = array();
    foreach ($ordered_questions as $order => $i) {
        $mysql_type = "varchar(255)";
        if ($questions[$i]['type'] == "control_textarea") {
            $mysql_type = "text";
        }
        array_push($fields, $questions[$i]['text']);
        array_push($fields_sql, "\t`" . mysql_fieldname_format($questions[$i]['text']) . "` " . $mysql_type);
    }
    $sql .= "\t`submissionID` BIGINT PRIMARY KEY,\n";
    $sql .= implode(",\n", $fields_sql);
    $sql .= "\n);\n\n";
    // INSERT / REPLACE STATEMENT
    foreach ($submissions as $s) {
        $insert = "MERGE INTO `" . $table . "` (\n";
        $insert .= "ON " . $table . ".submissionID = " . $s["id"] . "\n";
        $insert .= "WHEN MATCHED THEN\n";
        $keys = array();
        $values = array();
        $answer = array();
        foreach ($s['answers'] as $a) {
            $answer[$a['text']] = $a['answer'];
        }
        foreach ($fields as $k) {
            if ($k != "" && $k != "....") {
                array_push($keys, "`" . mysql_fieldname_format($k) . "`");
                if (is_array($answer[$k])) {
                    $a = implode(",", $answer[$k]);
                } else {
                    $a = $answer[$k];
                }
                array_push($values, "'" . my_mysql_real_escape_string($a) . "'");
            }
        }
        $insert .= "UPDATE TABLE `" . $table . "` SET ";
        for ($i = 0; $i < count($keys); $i++) {
            $insert .= $keys[$i] . "=" . $values[$i];
            if ($i < count($keys) - 1) {
                $insert .= " AND ";
            }
        }
        $insert .= "\nWHEN NOT MATCHED THEN\n";
        $insert .= "INSERT INTO `" . $table . "` (";
        $insert .= implode(", ", $keys);
        $insert .= ")\nVALUES (";
        $insert .= implode(", ", $values);
        $insert .= ");\n\n";
        $sql .= $insert;
    }
    return $sql;
}