当前位置: 首页 > 面试题库 >

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

公良渝
2023-03-14
问题内容

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

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

代替此值,应该是NULL

现在到我的代码。我正在逐行读取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);

使用default

$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 ;

问题答案:

我发现了问题。我正在读取一个csv文件。该html" target="_blank">文件是用phpmyadmin导出的,其中包含NULL字符串。我的支票

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

还不够,因为它从未检查过string NULL。因此,解决方案是:

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

所以安德鲁是对的。



 类似资料:
  • 我创建了一个表,它有一个int类型的默认NULL字段。我需要使用参数查询插入数据,但我无法通过变量将NULL传递到int字段。 我尝试了以下作为返回从mk_int 返回空值 但以上允许在字段中插入NULL。 当我从mk_int返回'NULL'时。。它给出类型不匹配的警告,并插入0而不是NULL

  • 我正在通过反射动态实例化一个对象,方法是将字段名称与地图中类似的命名键进行匹配。其中一个字段是字符数组(char[]): 在plinko迭代器中,我为目标类上的类型编写了代码,例如。 例如,其中将是 如果field dClass类型是char[],要测试的表达式是什么?

  • 我尝试从本地磁盘(Windows 10)向我的RDS MySQL数据库插入一个blob。然而,我的查询没有插入blob。新行包含所有其他列,但blob为空。 以下是我尝试过的: 我设置了文件的读/写权限 安全文件设置为/tmp。。。我不知道这是什么意思。这是路径还是变量?如果它是一个变量,我已经尝试从用户/系统变量“TMP”的路径上传blob,但没有成功。我无法更改安全文件,因为RDS允许更改。。

  • 问题内容: 我需要将网址存储在MySQL表中。定义将包含长度不确定的URL的字段的最佳实践是什么? 问题答案: 流行的Web浏览器中最小的公分母最大URL长度: 2,083 (Internet Explorer) http://dev.mysql.com/doc/refman/5.0/en/char.html VARCHAR列中的值是可变长度的字符串。 在MySQL 5.0.3之前,长度可以指定为

  • 问题内容: 我有一个带一些默认值和url的bone.js模型: 然后,我有此模型的一个实例,然后继续保存它: 现在,我想使用PHP脚本“ save.php”将此模型保存到MySQL数据库中,如下所示: 我尝试阅读许多教程,但无法保存此简单模型。为什么我的代码不起作用?关于如何解决的任何想法? 谢谢 编辑:快速解决方案 在php脚本中,从发送的JSON对象获取信息的正确方法如下: 并存储在数据库中:

  • 问题内容: 从Python脚本向MySQL插入一些数据时,出现一个奇怪的错误。这基本上与我要插入的变量为空有关。我认为MySQL不喜欢空白变量,但是还有其他我可以将其更改为可以与我的insert语句一起使用的东西吗? 我可以成功地使用一条语句将其设置为0(如果为空),但这可能会弄乱我计划稍后在MySQL中进行的某些数据分析。有没有办法将其转换为或某种方式,以便MySQL接受但不添加任何内容? 问题