gpt4 book ai didi

php - 将 NULL 插入 DATE 或 tinyint 字段返回 00-00-0000/0

转载 作者:行者123 更新时间:2023-11-30 00:03:25 24 4
gpt4 key购买 nike

谁能告诉我如何正确插入NULL?我似乎无法让它发挥作用。

我的 HTML 表单填充了 $product_lights_total 和 $product_releasedate。当它们在数据库中为 NULL 时,并且我选择要编辑的产品,在 HTML 表单中,这些选项显示为空/空白,但是当我提交没有任何更改的表单时,刷新后这些字段将变为 0 和 00-00-0000。

我有一堆 varchar(xx) 列,我与本示例中的列同时更新,有时使用与下面相同的方法更新为 NULL,并且工作正常。这些保持为 NULL。为了缩小尺寸,我将它们排除在本示例之外。

// First, grab the info needed to populate my HTML form for the selected product
if (isset($_GET['id'])) {
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
$get_item_stats = mysqli_query($link, "SELECT * FROM products WHERE id='$id'");
}
$row = mysqli_fetch_assoc($get_item_stats);
if (!$row) {
$error = 'Error.';
$link = '.';
include 'error.php';
exit();
}
if ($row['lights_total'] == NULL) {
$product_lights_total = NULL;
} else $product_lights_total = $row['lights_total'];
if ($row['releasedate'] == NULL) {
$product_releasedate = NULL;
} else $product_releasedate = $row['releasedate'];

// if the form is submitted, insert the values present in the form
if(isset($_POST['submit'])) {
$lights_total = mysqli_real_escape_string($link, $_POST['lights_total']);
$releasedate = mysqli_real_escape_string($link, $_POST['releasedate']);

$edit_item = "UPDATE products SET lights_total='$lights_total', releasedate='$releasedate' WHERE id='$productid'";
$result = mysqli_query($link, $edit_item);
if (!$result) {
$error = 'Error.';
include 'error.php';
exit();
}
else
// do stuff
}

编辑以显示表结构:

releasedate DATE DEFAULT NULL,
lights_total tinyint(4) DEFAULT NULL

如果我在 mysql 中选择这些值,它们将返回 NULL(假设这就是它们在我的初始数据库填充中插入的内容)。它们仅使用上面的 php 代码从 NULL 更改。

最佳答案

您没有插入 null,您实际上是在插入... ''

这是因为 PHP null 在转换为字符串时是空字符串,并且您将该空字符串括在 MySQL 引号中。

可以解决这个问题:

"... releasedate = ".($releasedate ? "'".$releasedate."'" : "null")." ..."

但实际上您应该使用准备好的语句 - 将 null 传递给该语句,然后您将插入 null,没有麻烦。

关于php - 将 NULL 插入 DATE 或 tinyint 字段返回 00-00-0000/0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821770/

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