PHP 从表单到数据库 - 没有错误,但没有结果
PHP Form to Database - No error, yet no result
我正在尝试使用 PHP 创建申请表。我设置了 HTML 标记,并创建了 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`)");
?>
提前致谢。
请使用
$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: ";
}
如果您的语句失败,您可以通过执行以下操作输出错误消息:
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
语句将 return TRUE
,否则 FALSE
。以上内容应该可以让您了解哪里出了问题。
编辑:
您使用的 VALUES 不正确 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"。
如果是这种情况应该修改,但上面的代码中没有。
重要提示:
- 您当前的密码对SQL injection. Use
mysqli
with prepared statements, or PDO with prepared statements开放。
在您的代码中,您为数据库字段名称添加了引号,我认为这是个问题
$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 实际上我们仅在某些我们使用“/”的框架中传递查询字符串“/”
我正在尝试使用 PHP 创建申请表。我设置了 HTML 标记,并创建了 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`)");
?>
提前致谢。
请使用
$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: ";
}
如果您的语句失败,您可以通过执行以下操作输出错误消息:
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
语句将 return TRUE
,否则 FALSE
。以上内容应该可以让您了解哪里出了问题。
编辑:
您使用的 VALUES 不正确 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"。
如果是这种情况应该修改,但上面的代码中没有。
重要提示:
- 您当前的密码对SQL injection. Use
mysqli
with prepared statements, or PDO with prepared statements开放。
在您的代码中,您为数据库字段名称添加了引号,我认为这是个问题
$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 实际上我们仅在某些我们使用“/”的框架中传递查询字符串“/”