php mysql爆炸数据库插入

时间:2015-04-09 14:26:59

标签: php mysql sql

我正在尝试使用用户表单输入的列创建一个表。 文本框创建数据库,另一个文本框创建表并使用javascript创建更多文本框,这将创建更多表。 现在我在“表格”文本框旁边有一个文本框,可以接受以下条目:“id item quote price” 例如,未知的输入总数可能是4到6,但我尝试根据这些值在表中创建列。 在数据库中只创建了一列,这是最后一个值,例如price,但我试图将所有值都放入正确的表中。

$getMessage = $_POST["dbMessages"];
$questions = $_POST["dbMessagesName"];
$answers = $_POST["dbMessages"];
$combined = array_combine($questions, $answers);    
$dbConnectionT = mysqli_connect($host, $user, $password, $dbName);
        // create loop to assign input boxes together
foreach($combined as $question => $answer)
{           
    $answerSplit = explode(" ", implode($getMessage));
    foreach ($answerSplit as $split)
        {
        // create the tables and columns from the message text box
        $sqlCreateTable = "CREATE TABLE " . $question . "(
        " . $split . " VARCHAR(6)
                        )" ;
                        echo $split;
                        echo "</br>";   
                    }
                    // if the connection and sql query is true echo for debugging   
                    if ($dbConnectionT->query($sqlCreateTable) == TRUE) {
                    print "{$question} = {$answer} ";
                    //echo "made it here";
                    echo "</br>";

                    }
   }

所以我试图使用explode拆分文本框并尝试使用相关的答案拆分更新问题表。 请注意,对于此示例,我理解我对数据库主键的违规,并且不担心数据库关键方面,对于此示例!!

提前致谢

2 个答案:

答案 0 :(得分:0)

不是为每个拆分创建一个表(只会覆盖自己),而是应该将数据存储到JSON字符串中,并使用JSON中的数据创建一个表。

答案 1 :(得分:0)

工作解决方案

    $getMessage = $_POST["dbMessages"];
    $questions = $_POST["dbMessagesName"];
    $answers = $_POST["dbMessages"];
    $combined = array_combine($questions, $answers);

$dbConnectionT = mysqli_connect($host, $user, $password, $dbName);


        // create loop to assign input boxes together
        foreach($combined as $question => $answer)
        {

            $columns = "`".str_replace(" ", "` VARCHAR(60), `", $answer)."` VARCHAR(60)"; 
            // create the tables and columns from the message text box
                    $sqlCreateTable = "CREATE TABLE " . $question . "(
                                         " . $columns . "
                                        )";

                            echo "</br>";   


                    // if the connection and sql query is true echo for debugging   
                    if ($dbConnectionT->query($sqlCreateTable) == TRUE) {


                    print "{$question} = {$answer} ";
                    echo "</br>";
                    echo "add messages ";
                    echo "</br>";


            }
        }