PHP表单到数据库-没有错误,但没有结果
我正在尝试用PHP创建一个应用程序表单。我已经设置了HTML标记,并创建了PHP处理器。不幸的是,没有用。我没有收到任何错误,但数据库也没有更新。如果你能看看我的代码,那就太好了 HTML标记:PHP表单到数据库-没有错误,但没有结果,php,mysql,database,validation,Php,Mysql,Database,Validation,我正在尝试用PHP创建一个应用程序表单。我已经设置了HTML标记,并创建了PHP处理器。不幸的是,没有用。我没有收到任何错误,但数据库也没有更新。如果你能看看我的代码,那就太好了 HTML标记: <form method="post" action="<?php echo base_url();?>index.php/new_post" id="application-form"> <table class="appl
<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>
提前感谢。请使用
$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')");
将`
从插入到TableName(这里,这里)
用于错误处理
if ($queryResult === TRUE) {
echo "New record created successfully";
} else {
echo "Error: ";
}
如果语句失败,可以通过执行以下操作输出错误消息:
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
。上面的内容应该会告诉你哪里出了问题
编辑: 您的值使用了不正确的引号,即勾号,应改为常规单引号 将其更改为:
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.:
另外,你可能把你的“问题7”列错了,它很可能读作“问题7”
如果是这样的话,应该修改它,但是上面的代码中没有这样做
重要提示:
- 您当前的代码对用户开放。使用,或
$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`)");
试试这个。
我对通过“/”传递段的形式操作u表示怀疑。在核心php中是否有这种支持?实际上,我们只传递查询字符串,只在我们使用的某些框架中使用“/”从值中删除勾号
`
,并将其替换为引号“
。这些是值,不是列。如果你一直在检查错误,你就会被告知这件事。快速搜索和替换将立即修复此问题。您没有看到任何错误,因为您没有查找它们。在您的mysqli_*()
调用中添加一些错误检查。您也应该认真检查数据的清理。您的代码易受sql注入的影响:/Nota:您可能还错误地在该列中添加了“queson7”一词,除了我编辑的正确答案之外,其他地方都没有注意到。不是$conn
,但是$mysqli
——因为OP使用$mysqli
作为变量。那么为什么要使用$conn
?嗨!谢谢你的回答。我曾经尝试过实现它,但现在得到了“Message:mysqli类的对象无法转换为字符串”,实际上,请将其删除。刚刚看到你的编辑-它现在就像一个魅力。非常感谢!当然,它会打印出来,但这并不能解决问题,最好是在评论中说。@fred ii:我还是很感激StackOverflow的建议。不客气,Eric。如果您要从答案中的值中删除勾号,并用引号替换它们,那么这样会更好。查看已接受的答案,了解他们是如何做到的。我已对您的答案进行了编辑,Eric,所以只是为了让事情变得正确;-)如果您尝试使用``勾选值,您将得到SQL->INSERT INTO ARCHIES(id,a)值(102,test);“字段列表”中的未知列“102”出现错误
。请修改答案。在哪里`
$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`)");