从表单创建PHP动态查询

I am trying to be clever, possibly too clever in creating a set of forms that will dynamically insert their data into the database based on their input names.

I have it so it builds the query correctly, however when I attempt to insert it fails as to say it is a malformed query, is there a better way of doing what I am trying to achieve, but similarly?

<form method="post">
    <input type="text" name="form_array['text']" /> 
    <button name="insert">Go</button>
</form>

Here is my query generation, on submit of the form:

$setup['table'] = "table1";

if(isset($_POST['insert'])){
    $inserts = "";
    $values = "";

    foreach($_POST['form_array'] as $form_id => $form_data){
        if(!empty($form_data)){
            if(!isset($first_run)){
                $first_run = 1;
                $inserts .= $form_id;
                $values .= "'".$form_data."'";
            } else {
                $inserts .= ", ".$form_id;
                $values .= ", '".$form_data."'";
            }
        } else {
            die('error');
        }
    }

    die("INSERT INTO '".$setup['table']."' ($inserts) VALUES ($values)");
}

Thanks.

Aside from all the fixes that was commented to you; this can be simplified, try it;

<form method="post">
    <input type="text" name="form_array[column1]" /> 
    <input type="text" name="form_array[column2]" /> 
    <button name="insert">Go</button>
</form>

<?php
if(isset($_POST['insert'])){
    $table = 'table';
    $handler = 'form_array';
    $keys = array_keys($_POST[$handler]);
    $sql = "INSERT INTO `{$table}` (`".implode('`, `', $keys)."`) VALUES ('".implode("', '", $_POST[$handler])."')";
    echo $sql;
}

Output:

INSERT INTO `table` (`column1`, `column2`) VALUES ('value1', 'value2')