2015-02-10 69 views
0

我试图用PHP创建应用程序窗体。我设置了HTML标记,并创建了PHP处理器。不幸的是,无济于事。我没有收到任何错误,但数据库没有更新。如果你能看看我的代码,那将非常棒。PHP窗体到数据库 - 没有错误,但没有结果

HTML标记:

<form method="post" action="<?php echo base_url();?>index.php/new_post" id="application-form"> 
         <table class="application"> 
          <tbody> 
           <tr> 
            <td class="left">Question 1</td> 
            <td><input type="text" size="30" name="question1" id="question1"/></td> 
           </tr> 
           <tr> 
            <td class="left">Question 2</td> 
            <td><input type="text" size="30" name="question2" id="question2"/></td> 
           </tr> 
           <tr> 
            <td class="left">Question 3</td> 
            <td><input type="text" size="30" name="question3" id="question3"/></td> 
           </tr> 
           <tr> 
            <td class="left">Question 4</td> 
            <td><input type="text" size="30" name="question4" id="question4"/></td> 
           </tr> 
           <tr> 
            <td class="left">Question 5</td> 
            <td><textarea rows="4" cols="30" name="question5" id="question5"></textarea></td> 
           </tr> 
           <tr> 
            <td class="left">Question 6</td> 
            <td><textarea rows="4" cols="30" name="question6" id="question7"></textarea></td> 
           </tr> 
           <tr> 
            <td class="left">Question 7</td> 
            <td><input type="text" size="30" name="question7" id="question7"/></td> 
           </tr> 
           <tr> 
            <td class="left">Question 8</td> 
            <td><textarea rows="4" cols="30" name="question8" id="question8"></textarea></td> 
           </tr> 
           <tr> 
            <td class="left">Question 9</td> 
            <td><textarea rows="4" cols="30" name="question9" id="question9"></textarea></td> 
           </tr> 
           <tr> 
            <td class="left">Question 10</td> 
            <td><textarea rows="4" cols="30" name="question10" id="question10"></textarea></td> 
           </tr> 
           <tr> 
            <td class="left">Question 11</td> 
            <td><textarea rows="4" cols="30" name="question11" id="question11"></textarea></td> 
           </tr> 
           <tr> 
            <td class="left">Question 12</td> 
            <td><input type="text" size="30" name="question12" id="question12"/></td> 
           </tr> 
           <tr> 
            <td class="left">Question 13</td> 
            <td><textarea rows="4" cols="30" name="question13" id="question13"></textarea></td> 
           </tr> 
           <tr> 
            <td class="left">Question 14</td> 
            <td><textarea rows="4" cols="30" name="question14" id="question14"></textarea></td> 
           </tr> 
           <tr> 
            <td class="left">Question 15</td> 
            <td><input type="text" size="30" name="question15" id="question15"/></td> 
           </tr>       
          </tbody> 
         </table> 
         <button type="submit" class="btn btn-block btn-danger martop15">Send Application</button> 
        </form> 

PHP处理器:

<?php 
    if(!empty($_POST)){ 
     $question1 = $_POST['question1']; 
     $question2 = $_POST['question2']; 
     $question3 = $_POST['question3']; 
     $question4 = $_POST['question4']; 
     $question5 = $_POST['question5']; 
     $question6 = $_POST['question6']; 
     $question7 = $_POST['question7']; 
     $question8 = $_POST['question8']; 
     $question9 = $_POST['question9']; 
     $question10 = $_POST['question10']; 
     $question11 = $_POST['question11']; 
     $question12 = $_POST['question12']; 
     $question13 = $_POST['question13']; 
     $question14 = $_POST['question14']; 
     $question15 = $_POST['question15']; 

    } 

     $mysqli = new mysqli('localhost', 'root', '', 'database'); 

     $mysqli->query("INSERT INTO `applications`(`question1`, `question2`, `question3`, `question4`, `question5`, `question6`, `quesion7`, `question8`, `question9`, `question10`, `question11`, `question12`, `question13`, `question14`, `question15`) VALUES (`$question1`, `$question2`, `$question3`, `$question4`, `$question5`, `$question6`, `$question7`, `$question8`, `$question9`, `$question10`, `$question11`, `$question12`, `$question13`, `$question14`, `$question15`)"); 
?> 

预先感谢。

+3

从您的值中删除'\''并用引号''替换它们。这些是价值观,而不是专栏。如果你一直在检查错误,你会被告知的。快速搜索和替换可以解决这个问题。 – 2015-02-10 04:19:44

+0

你没有看到任何错误,因为你不在寻找它们。给你的'mysqli _ *()'调用添加一些错误检查。 – 2015-02-10 04:21:04

+0

你应该真的考虑清理你的数据。 – KyleMassacre 2015-02-10 04:23:21

回答

0

请使用

$queryResult = $mysqli->query("INSERT INTO applications(question1, question2, question3, question4, question5, question6,quesion7, question8, question9, question10, question11, question12, question13, question14,question15) VALUES ('$question1', '$question2', '$question3', '$question4', '$question5', '$question6', '$question7', '$question8', '$question9', '$question10','$question11', '$question12', '$question13','$question14', '$question15')"); 

insert into TableName (here,here)

删除``错误处理

if ($queryResult === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: "; 
} 
+0

不是'$ conn',而是'$ mysqli' - 因为OP使用'$ mysqli'作为变量。那么为什么要使用'$ conn'? – 2015-02-10 04:30:51

+0

嗨!感谢你的回答。我试图实现它,但现在变得“消息:类mysqli的对象无法转换为字符串” – Shepred 2015-02-10 04:38:25

+0

其实,从头开始。刚刚看到你的编辑 - 现在它就像一个魅力。谢谢一堆! – Shepred 2015-02-10 04:40:35

0

如果你的语句失败,可以输出通过执行以下错误消息:

if (!$mysqli->query("INSERT INTO `applications`(`question1`, `question2`, `question3`, `question4`, `question5`, `question6`, `quesion7`, `question8`, `question9`, `question10`, `question11`, `question12`, `question13`, `question14`, `question15`) VALUES (`$question1`, `$question2`, `$question3`, `$question4`, `$question5`, `$question6`, `$question7`, `$question8`, `$question9`, `$question10`, `$question11`, `$question12`, `$question13`, `$question14`, `$question15`)")) { 
    printf("Error message: %s\n", $mysqli->error); 
} 

对于INSERT语句,如果语句成功,则$mysqli->query语句将返回TRUE,否则FALSE。上面应该给你一个指出哪里出了问题。


编辑:

您使用的是你的价值观不正确的identifiers,被蜱应定期单引号代替。

将其更改为:

if (!$mysqli->query("INSERT INTO `applications` (`question1`, `question2`, `question3`, `question4`, `question5`, `question6`, `quesion7`, `question8`, `question9`, `question10`, `question11`, `question12`, `question13`, `question14`, `question15`) VALUES ('$question1', '$question2', '$question3', '$question4', '$question5', '$question6', '$question7', '$question8', '$question9', '$question10', '$question11', '$question12', '$question13', '$question14', '$question15')")) { 
    printf("Error message: %s\n", $mysqli->error); 
} 

N.B:

另外,你可能拼写错误的 “quesion7” 列,它是最有可能读作 “question7”。

如果是这种情况,应该修改它,但不是在上面的代码中进行的。


重要提示:

+1

当然,它会打印出来,但这并不能解决问题,最好在评论中说明。 – 2015-02-10 04:35:18

+0

@ fred-ii:仍然围绕着StackOverflow进行包装,我很欣赏这个建议。 – 2015-02-10 16:30:56

+0

不客气埃里克。如果您要从答案中的值中删除勾号,并用引号替换它们,那么这样做会更好。看到他们是如何做到的接受的答案。 – 2015-02-10 16:51:47

-1

在你的代码添加了数据库字段名的报价,我认为这是问题

$mysqli->query("INSERT INTO applications (question1, question2, question3, question4, question5, question6, quesion7, question8, question9, question10,question11, question12, question13, question14, question15) VALUES (`$question1`, `$question2`, `$question3`, `$question4`, `$question5`, `$question6`, `$question7`, `$question8`, `$question9`, `$question10`, `$question11`, `$question12`, `$question13`, `$question14`, `$question15`)"); 

尝试这个。 我有疑问在形式行动ü传递段“/”分离是否有这种支持在核心PHP实际上,我们只通过查询字符串只在我们使用的某些框架中“/”

+0

如果你尝试使用''Tick值,你得到SQL - > INSERT INTO文章(id,a)值(, test );和'错误列''栏'中的未知列'102'。请修改答案。 其中是' – 2015-02-10 04:47:42

相关问题