gpt4 book ai didi

php - 验证价格值以插入销售表

转载 作者:行者123 更新时间:2023-11-30 22:59:50 24 4
gpt4 key购买 nike

我有一个表单,其中包含这样的输入:

<input name="price" type="text" />

我验证它以便我可以插入到数据库中。我想要的要求是:

  • 只允许输入数字。
  • 如果为空,则该值将为 0(零)并插入到 sales 表中。

1) 验证步骤如下:

// Validate price:
if (empty($_POST['price'])){
$price = 0;
} elseif(!empty($_POST['price'])) {
$price = is_decimal($_POST['price']);
} else {
$price = TRUE;
}

2) 将价格插入销售表的查询:

$q ="INSERT INTO sales (price) VALUES ('$price')";

使用 $price 变量的 EMPTY 值运行查询后,我检查了销售表,发现插入到价格列中的值是 1.00,但不是我预期的 0.00。

我做错了什么?你能帮忙吗?谢谢

注意事项:

这是名为 is_decimal 的函数:

function is_decimal ($price){
$price = trim($price);
$price = preg_match('/^(\d)(.\d)?$/', $price);
$price = round($price, 2);
return $price;
}

Sales 表:

$query = 'CREATE TABLE sales (
sale_id int(10) unsigned NOT NULL auto_increment,
price decimal(6,2) unsigned NOT NULL,
PRIMARY KEY (sale_id),
) ENGINE = MYISAM';

最佳答案

问题出在您的函数中,特别是 preg_match。您收到 1,因为这是它找到的匹配项数。要修复你可以简单地添加一个结果变量输出到:

function is_decimal ($price){
$price = trim($price);
preg_match('/^(\d)(.\d)?$/', $price, $result);
$price = round($result, 2);
return $price;
}

关于php - 验证价格值以插入销售表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24588443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com