Php 我能';t添加';空';MySQL 5.5中的值

Php 我能';t添加';空';MySQL 5.5中的值,php,mysql,database,Php,Mysql,Database,当我尝试使用以下代码在数据库中插入值时: INSERT INTO obra (codInstituicao, codInventariadaPor, dataInventariada,nome,codEstadoConservacao, .......) values (" . $codInstituicao ."," . $_SESSION['id']. ", NULL, '" . $nome ."' , '" . $codEstadoConservacao . "', ......)

当我尝试使用以下代码在数据库中插入值时:

INSERT INTO obra (codInstituicao, codInventariadaPor, dataInventariada,nome,codEstadoConservacao, .......)  values (" . $codInstituicao ."," .  $_SESSION['id']. ", NULL, '" . $nome ."' , '" . $codEstadoConservacao . "', ......)
在本代码开头,声明:

$codEstadoConservacao = (empty($_POST['estadoconservacao']) ?  "NULL" : $_POST['estadoconservacao']);
我的表的类型是InnoDB。执行插入时,出现以下错误:

Incorrect integer value: 'null' for column 'codEstadoConservacao' at row 1

不要将空值括在引号中:

, '" . $codEstadoConservacao . "',
应该是

, " . $codEstadoConservacao . ",

不要将空值括在引号中:

, '" . $codEstadoConservacao . "',
应该是

, " . $codEstadoConservacao . ",

不要将空值括在引号中:

, '" . $codEstadoConservacao . "',
应该是

, " . $codEstadoConservacao . ",

不要将空值括在引号中:

, '" . $codEstadoConservacao . "',
应该是

, " . $codEstadoConservacao . ",

您正在向数据库中插入一个文本字符串。删除双引号-例如,使用NULL而不是“NULL”


此外,您很容易使用该查询进行SQL注入。您应该使用类似的方法将参数绑定到SQL查询。

您正在向数据库中插入一个文本字符串。删除双引号-例如,使用NULL而不是“NULL”


此外,您很容易使用该查询进行SQL注入。您应该使用类似的方法将参数绑定到SQL查询。

您正在向数据库中插入一个文本字符串。删除双引号-例如,使用NULL而不是“NULL”


此外,您很容易使用该查询进行SQL注入。您应该使用类似的方法将参数绑定到SQL查询。

您正在向数据库中插入一个文本字符串。删除双引号-例如,使用NULL而不是“NULL”


此外,您很容易使用该查询进行SQL注入。您应该使用类似的方法将参数绑定到SQL查询。

这里有两个主要问题

首先,如果
$codEstadoConservacao
NULL
,则它将插入
'NULL'
,作为字符串,由于引号的缘故,字面上是文本NULL。它与MySQL的
NULL
不同

其次,我看到您从
$\u POST
中获取这个值,并使用它构建SQL查询,而不必担心结果。您将成为/的受害者


您必须相应地处理所有和任何用户输入,以防止出现这种情况,请使用或使用一些转义函数,例如
mysql\u real\u escape\u string()
/
mysqli\u real\u escape\u string()
等。查找您所使用的任何数据库连接方法的可用选项。

这里有两个主要问题

首先,如果
$codEstadoConservacao
NULL
,则它将插入
'NULL'
,作为字符串,由于引号的缘故,字面上是文本NULL。它与MySQL的
NULL
不同

其次,我看到您从
$\u POST
中获取这个值,并使用它构建SQL查询,而不必担心结果。您将成为/的受害者


您必须相应地处理所有和任何用户输入,以防止出现这种情况,请使用或使用一些转义函数,例如
mysql\u real\u escape\u string()
/
mysqli\u real\u escape\u string()
等。查找您所使用的任何数据库连接方法的可用选项。

这里有两个主要问题

首先,如果
$codEstadoConservacao
NULL
,则它将插入
'NULL'
,作为字符串,由于引号的缘故,字面上是文本NULL。它与MySQL的
NULL
不同

其次,我看到您从
$\u POST
中获取这个值,并使用它构建SQL查询,而不必担心结果。您将成为/的受害者


您必须相应地处理所有和任何用户输入,以防止出现这种情况,请使用或使用一些转义函数,例如
mysql\u real\u escape\u string()
/
mysqli\u real\u escape\u string()
等。查找您所使用的任何数据库连接方法的可用选项。

这里有两个主要问题

首先,如果
$codEstadoConservacao
NULL
,则它将插入
'NULL'
,作为字符串,由于引号的缘故,字面上是文本NULL。它与MySQL的
NULL
不同

其次,我看到您从
$\u POST
中获取这个值,并使用它构建SQL查询,而不必担心结果。您将成为/的受害者


您必须相应地处理所有和任何用户输入,以防止出现这种情况,请使用或使用一些转义函数,例如
mysql\u real\u escape\u string()
/
mysqli\u real\u escape\u string()
等。查找您所使用的任何数据库连接方法的可用选项。

我建议您在运行查询之前向我们展示查询,而不是向我们展示如何构建查询。通过这种方式,我们可以确切地看到代码中发生了什么。我必须建议在运行查询之前向我们展示查询,而不是向我们展示如何构建查询。通过这种方式,我们可以确切地看到代码中发生了什么。我必须建议在运行查询之前向我们展示查询,而不是向我们展示如何构建查询。通过这种方式,我们可以确切地看到代码中发生了什么。我必须建议在运行查询之前向我们展示查询,而不是向我们展示如何构建查询。这样,我们就可以准确地看到代码中发生了什么。