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

PHP / MySQL插入空值

曹涵润
2023-03-14
问题内容

我正在努力处理一些PHP /
MySQL代码。我正在从1个表中读取,更改一些字段,然后写入另一个表,如果我希望它在数据库中插入null(该字段允许使用null值),则如果插入且其中一个数组值是null则什么也不会发生。它看起来像这样:

$results = mysql_query("select * from mytable");
while ($row = mysql_fetch_assoc($results) {
    mysql_query("insert into table2 (f1, f2) values ('{$row['string_field']}', {$row['null_field']});
}

并非每一行都具有null值,并且在我的查询中还有更多字段和2列可能为null或不为null


问题答案:

这是一个使用 准备好的语句 确实可以省去您麻烦的示例。

在MySQL中,为了插入一个空值,您必须及时指定它INSERT或将字段留在外面,这需要附加的分支:

INSERT INTO table2 (f1, f2)
  VALUES ('String Value', NULL);

但是,如果要在该字段中插入一个值,则现在必须分支代码以添加单引号:

INSERT INTO table2 (f1, f2)
  VALUES ('String Value', 'String Value');

准备好的语句会自动为您完成。他们知道之间的区别,string(0) ""null适当地编写查询:

$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);

$field1 = "String Value";
$field2 = null;

$stmt->execute();

它为您转义了您的字段,请确保您不要忘记绑定参数。没有理由留在mysql扩展中。使用mysqli和它是准备好的语句。您将为自己节省痛苦的世界。



 类似资料:
  • PHP是:

  • 主要内容:使用 MySQLi 和 PDO 向 MySQL 插入数据,实例 (MySQLi - 面向对象),实例 (MySQLi - 面向过程),实例 (PDO)使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据。 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 在 SQL 查询语句中的字符串值必须加引号 数值的值不需要引号 NULL 值不需要引号 INSERT INTO 语句通常用于向 MySQL 表添加新的记录: 学习更多关于

  • 问题内容: 我有一个将某些变量插入数据库的MySQL语句。我最近添加了两个可选字段($ intLat,$ intLng)。现在,如果未输入这些值,我将传递一个空字符串作为值。如何将明确的NULL值传递给MySQL(如果为空)? 问题答案: 要将NULL传递给MySQL,只需执行此操作。 因此,在您的代码中,检查是,如果是,请使用代替或。

  • 问题内容: 我看过很多教程,但是它们是如此混乱,以至于无法做我想做的事情,我只是不知道如何使用这些教程中的现有内容,并使它们按我希望的方式工作。 我有一个非常简单的表单,其中包含一个文本框,标签和一个提交按钮。当用户在表单中输入内容,然后单击提交时,我想使用php和ajax(带有jquery)将表单的结果插入到mysql数据库中。 有人可以告诉我如何实现吗?我需要的只是非常基本的东西,可以帮助我入

  • 我在将空值插入MySQL表的日期字段时遇到问题。 下面是插入查询: s1和s2列采用字符串值,d1和d2列采用日期。当我只使用字符串字段运行这个查询时,没有问题。 日期值可以设置为空,所以我没有在查询中包含引号,而是在前面将它们添加到变量中。这是我用来设置日期值的php代码: 当日期值全部设置时,记录将被正确插入。但是,当其中一个日期为空时,将不插入任何内容。 为什么我不能像这样在MySQL中插入