为什么要插入0';使用php在我的数据库中输入空格而不是空格?

为什么要插入0';使用php在我的数据库中输入空格而不是空格?,php,mysql,insert,integer,Php,Mysql,Insert,Integer,我有一个插页: $sql = 'INSERT into orders SET fax_int_prefix = "'.$_SESSION['fax_int_prefix'].'", fax_prefix = "'.$_SESSION['fax_prefix'].'", fax_first = "'.$_SESSION['fax_first'].'", fax_last = "'.$_SESSION['fax_last']; 所有这些字段的值都是在插入之前为空。以下是我在插入之前呼出的其

我有一个插页:

$sql = 'INSERT into orders SET 
fax_int_prefix = "'.$_SESSION['fax_int_prefix'].'", 
fax_prefix = "'.$_SESSION['fax_prefix'].'", 
fax_first = "'.$_SESSION['fax_first'].'", 
fax_last = "'.$_SESSION['fax_last'];
所有这些字段的值都是在插入之前为空。以下是我在插入之前呼出的其中一个示例:

$_SESSION[fax_prefix] =

出于某种原因,它插入了整数0,而不是应该插入的空值或null。为什么要在my DB中插入0而不是空格?

检查表的结构。它可能不是类型
char
varchar
(或者是,并且默认值设置为“0”)。要做到这一点,您可以使用,或其他MySql管理程序


编辑:如果要存储整数,但有无值选项,请确保该类型可为空。i、 e.:
column\u name INT(n)DEFAULT NULL

检查数据库的架构。很可能是整数字段之类的

SHOW FIELDS FROM orders;


也许会有帮助。此外,仅仅打印一个变量并不是一个好的检查,而是使用var_dump()。

好的,字段设置为整数。我希望他们在这些字段中提供的信息是整数或空白(无)。我真的需要更改数据类型来完成我想做的事情吗?如果您希望它们为空而不是0,请确保您
allow null
用于字段。它们确实允许null。在phpmyadmin中选中空框,默认值设置为空。如果设置了这些空选项,它怎么还能保存“0”值?如果传递的是空字符串,则需要对其进行测试并插入null。因此,您的查询将(简短地)读取:
if($\u SESSION['fax\u int\u prefix']='')$query='INSERT INTO orders SET fax\u int\u prefix NULL'/…
只需进一步注意:在sql中插入int列时,空字符串将转换为零。必须指定null,因为它与零不同。(一个很好的例子是温度列。0°C处于冻结状态。Null表示“我们不知道值。”)使用整数字段有什么问题?我希望他们在这些字段中提供的信息是整数或空白(无)。
SHOW CREATE TABLE orders;