gpt4 book ai didi

php - 将 NULL 值插入到类型为 char(2) 的数据库字段中

转载 作者:可可西里 更新时间:2023-11-01 08:54:03 27 4
gpt4 key购买 nike

如何使用 char(2) 将 NULL 值插入数据库字段 (MySQL)?

在我使用 mysql_query 之前,我在数据库中获得了以下值:NU

应该有 NULL 而不是这个值。

看完this question我切换到准备好的陈述。我的数据库中仍有 NU

现在我的代码。我正在逐行读取 CSV 文件。然后我做

    if(empty($data[$c])) {
$data[$c] = NULL;
}

如果我回显 $data[1],我得到 NULL。然后我进行准备好的查询:

$stmt = $connection->prepare("INSERT INTO table (first, second, ..) VALUES (?, ?, ...)");
$stmt->bind_param("ss...", $data[0], $data[1], ...);
$res=$stmt->execute();

怎么了?

编辑:

根据 Shiplu 的说法,我做了以下事情:

在不给出导致 NU 的最后一个参数的情况下执行此操作:

$stmt = $connection->prepare("INSERT INTO employee (first, second, ...) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssssssssssii", $data[0], $data[1], ..., $last);

使用默认:

$stmt = $connection->prepare("INSERT INTO employee (first, second, ..., last) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, default(last))");
$stmt->bind_param("sssssssssssssii", $data[0], $data[1], ...);

但还是一样的结果。 char(2) 字段的默认值为 NULL。这个怎么可能?看来问题不在于查询。我认为最简单的解决方案是更新查询 ...

创建表:

CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) NOT NULL auto_increment,
`text` varchar(128) default NULL,
`no` int(11) default NULL,
`problemfield` char(2) default NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `text` (`text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=832 ;

最佳答案

如果主题行的默认值未指定或为空,您可以在插入语句中省略列列表中的名称。

mysql> create table t(
-> n varchar(20),
-> a char(2),
-> primary key(`n`)
-> );
Query OK, 0 rows affected (0.05 sec)

mysql> insert into t (n) values ('myname');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> select * from t;
+--------+------+
| n | a |
+--------+------+
| myname | NULL |
+--------+------+
1 row in set (0.00 sec)

另一种技术是使用 DEFAULT功能。但它仅适用于 MySQL。我不知道它是否适用于其他 RDBMS 引擎。

mysql> insert into t (a, n) values (default(a), 'myname1');
Query OK, 1 row affected (0.00 sec)

mysql> select * from t;
+---------+------+
| n | a |
+---------+------+
| myname | NULL |
| myname1 | NULL |
+---------+------+

关于php - 将 NULL 值插入到类型为 char(2) 的数据库字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8897284/

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