php post 默认值,php – $_POST []的默认值;

$_POST []的默认值有问题;

所以我有一个带有文本框的html表单,并将信息发送到php脚本. php脚本有一个sql查询,正在发送到我的数据库.但如果我的html格式的文本框为空,则查询没有值.所以我想将我的帖子设置为默认值0,因此它至少返回一个值.

所以这里是一个html表单的例子(这不是我的执行脚本.只是一个例子.

好的,所以这个脚本将发送id和测试文本框将始终具有数字值.它将信息发送到testscript.php

这是testscript.php示例

$conn = mysqli_connect('host', 'dbuser', 'dbpass', 'dbname');

$id = $_POST['id'];

$test = $_POST['test'];

$sql = "INSERT INTO test_table (id, test) VALUES ($id, $test)";

if (mysqli_query($conn, $query)) {

echo "Success";

} else {

echo "Failed" . mysqli_error($conn);

}

好吧,现在如果我将我的html表单提交到php脚本而不向文本框插入任何文本,查询将如下所示

INSERT INTO test_table (id, test) VALUES ( , )

但查询应该是这样的

INSERT INTO test_table (id, test) VALUES (0, 0)

所以.我知道我可以在html标签中使用value属性但是然后该值将在文本框中可见,我不想要那样.

我知道我可以做一个if语句来制作这样的默认值

if (isset($_POST['test'])) {

$test = $_POST['test'];

} else {

$test = 0;

}

但现在的问题是,如果每个文本框和我的html表单的语句都有超过100个文本框,我就必须这样做.所以我不想为每个文本框制作一个if语句,因为那时我的脚本会变大,这需要几个小时.

那么有没有办法为所有文本框设置默认值而不使用php中的if statment或html格式的value属性?

解决方法:

我知道这似乎很痛苦,但你必须检查所有输入是否有效.您可以使用这样的三元运算符来简化代码量.

$id = isset($_POST['id']) ? $_POST['id'] : 0;

$test = isset($_POST['test']) ? $_POST['test'] : 0;

....

不,它不会花费数小时甚至数百个.

为了减少对代码的痛苦,可以使用PHP的variable variables循环功能

最痛苦的部分是创建一个包含所有字段名称的数组

$fields = array('id', 'test', 'extra', 'more', ..., 'one_hundred');

然后遍历该数组创建变量名称,同时转义字符串 – 如果它们在那里 – 否则设置值0(零).您可能希望/需要将其设置为“”(空字符串)

foreach($fields as $field_name)

{

${$field_name} = isset($_POST[$field_name]) ? mysqli_real_escape_string($conn, $_POST[$field_name]) : 0;

}

您现在可以使用变量$id,$test,$extra,$more,….,$one_hundred.

标签:php,sql,html

来源: https://codeday.me/bug/20190528/1168394.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值