表单数据已正确发布到电子邮件但未正确发布到数据库

Form data is correctly posted to email but incorrectly posted to database

我有一个表格,人们可以 select 他们是否在半小时内有 class(例如,开始或结束于 12:30,或者他们是否只 classes 在整个小时结束(例如,开始或结束于 1:00pm)。

这是一个调用一些 javascript 的复选框。提交表单时,数据通过 POST 发送到通过电子邮件发送信息的 php 脚本,以及将数据插入 mySQL 数据库的 php 脚本。

勾选复选框后,即 'Yes',发送的电子邮件会在电子邮件中包含 POST 字段 'Yes'。但是,无论 selection 是什么,数据库总是在 mySQL 列中添加一个 '0' 零 - 当 'Yes' 已 selected,其他一切正常。

感谢帮助,代码如下:)

html形式

<input type = "checkbox" name="halfClass" id="halfClass" value="Yes, I have half hour classes." style="width: 50px" onclick = "instructions(true)" >Yes<label style="width: 320px"><strong>Do you have some classes on the half hour?</strong></label></div>

php 发送邮件

$halfClass = $_POST['halfClass'];

$message = <<<EOD
<strong>$halfClass</strong> <br> <br />
EOD;

php 提交到 db

$sql = "INSERT INTO my_awesome_table (halfClass) VALUES ('$halfClass')";

Image: What the Database Table shows :(

检查 halfClass 列的数据类型。如果是数字类型,请将其更改为 string 类型。

table 的数据类型是什么?可能是因为数据类型是数字而不是字符串。如果它不是 varchar,请使用 varchar 进行修复。

如果 halfClass 整数 类型,则使用:

$sql = "INSERT INTO my_awesome_table (halfClass) VALUES (".$halfClass.")";

或者如果halfClassvarchar类型,那么使用:

$sql = "INSERT INTO my_awesome_table (halfClass) VALUES ('". $halfClass. "')";