php - 使用 php 在 mysql 数据库中保存复选框( boolean 值)值

标签 php mysql checkbox boolean

我正在尝试保存复选框值.. 我正在做一个带有复选框表单的注册系统。它的功能是知道学生是否通过要求,所以我将其分配为 boolean 类型。如果选中,它必须保存值“1”,如果未选中,则必须保存值“0”。

错误是:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '')' at line 2

如果我取消选中其中一项要求,就会发生这种情况:

Notice: Undefined index: brigada_form in C:\xampp2\htdocs\es\add_newstud.php on line 12
Notice: Undefined index: two_picture in C:\xampp2\htdocs\es\add_newstud.php on line 18

我真的需要一些帮助。这是代码..

示例形式:1 将值设置为“1”,我的数据库中的默认值为“0”

<input type="checkbox" name="two_picture" id="two_picture" value="1" />

php代码add_newstud.php

$requirement_id = $_POST['requirement_id'];     
$enrollment_form = $_POST['enrollment_form'];
$report_card = $_POST['report_card'];
$brigada_form = $_POST['brigada_form'];
$physical_inspection_form= $_POST['physical_inspection_form'];      
$agreement_upon_enrollment = $_POST['agreement_upon_enrollment'];
$nso = $_POST['nso'];
$good_moral = $_POST['good_moral'];
$one_picture = $_POST['one_picture'];       
$two_picture = $_POST['two_picture'];

$insert_req = "INSERT INTO es_req_newstud(requirement_id,enrollment_form,report_card,brigada_form,physical_inspection_form,agreement_upon_enrollment,nso,good_moral,1x1_picture,2x2_picture) `VALUES` ('$requirement_id','$enrollment_form','$report_card','$brigada_form','$physical_inspection_form','$agreement_upon_enrollment','$nso','$good_moral','$one_picture','$two_picture)";
mysql_query($insert_req) or die(mysql_error());

最佳答案

首先,MySQL 扩展在 PHP 5.5.0 中被弃用,并在 PHP 7.0.0 中被移除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

如果你必须使用 MySQL,我建议:

$insert_req = sprintf("INSERT INTO es_req_newstud (requirement_id,enrollment_form,report_card,brigada_form,physical_inspection_form,agreement_upon_enrollment,nso,good_moral,1x1_picture,2x2_picture) VALUES ('%d','%s','%s','%s','%s','%s','%s','%s','%d','%d');",
    $_POST['requirement_id'],
    mysql_real_escape_string($_POST['enrollment_form']),
    mysql_real_escape_string($_POST['report_card']),
    mysql_real_escape_string($_POST['brigada_form']),
    mysql_real_escape_string($_POST['physical_inspection_form']),
    mysql_real_escape_string($_POST['agreement_upon_enrollment']),
    mysql_real_escape_string($_POST['nso']),
    mysql_real_escape_string($_POST['good_moral']),
    $_POST['one_picture'],
    $_POST['two_picture']
);
mysql_query($insert_req) or die(mysql_error());

这将有助于确保不会发生 SQL 注入(inject)。同样,我强烈建议迁移到 MySQLi 或 PDO。

关于php - 使用 php 在 mysql 数据库中保存复选框( boolean 值)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32592570/

相关文章:

php - 无需登录的php安全投票系统

php - 我怎样才能加快我的 cron 作业/数据库更新

php - 学说中的实体多对多(symfony2)

android - 如何更改Android复选框的背景?

android - 如何使复选框在 android 中看起来更好

php - 如何使用 Yii2 进行正确的跨子域认证?

PHPPowerpoint : Grid Lines + Custom Chart Line Colors + Label Y-axis

mysql - 选择包含空参数的不同内连接

从数据库模式设计 C++ 类

php - 如何在codeigniter中将复选框中的多值插入到数据库中