无法在MySQL INT NULL中插入零

无法在MySQL INT NULL中插入零,mysql,Mysql,我有一个在MySQL列中保存零的查询 列被设置为NULL=no和Default=none。但是当我保存0时,当我使用该结构器时,我的查询不起作用。因此,我将该值更改为null。但当在数据库中保存0(零)时,它仍然会被保存为NULL 当我将列设置为NULL=no和Default时,它在本地主机上运行良好,但在主机查询中没有插入。这就是为什么我将其更改为null MySQL版本5.6.30 质疑 $mysqli->query("INSERT INTO categories(cname, cat

我有一个在MySQL列中保存零的查询

列被设置为
NULL
=no和
Default
=none。但是当我保存0时,当我使用该结构器时,我的查询不起作用。因此,我将该值更改为null。但当在数据库中保存0(零)时,它仍然会被保存为NULL

当我将列设置为
NULL
=no和
Default
时,它在本地主机上运行良好,但在主机查询中没有插入。这就是为什么我将其更改为null

MySQL版本5.6.30

质疑

$mysqli->query("INSERT INTO categories(cname, cat_description, cat_ parent) VALUES ('$cname', '$description', '0')");

实际上,您正试图在
整数
列中插入
字符串
。MySQL不接受这一点。它不应该这样

插入一个整数:

$mysqli->query("INSERT INTO categories(cname, cat_description, cat_ parent) VALUES ('$cname', '$description', 0)");

只需删除
0

周围的引号,您尝试的查询在哪里?我理解英语可能不是您的第一语言,但很难准确理解您所说的内容。复制和粘贴您的查询和结果,并显示您期望的结果,这将真正有助于澄清发生了什么。“当我将列设置为NULL=no和Default”:和Default。。。默认什么?是英语不是我的第一语言。它是一个简单的插入代码。问题是我无法将0保存到数据库中。它总是保存NULL,如果我使列不为NULL,插入查询将无法工作。这仅适用于我的新托管提供商。我们至少需要您表的架构(
DESC tablename
SHOW CREATE table tablename
)和您运行的插入查询。使用默认配置,MySQL将字符串转换为int()。但无法知道她的托管提供商是否使用默认配置(事实上,他们不应该这样做)。谢谢。这很好。因此,通常情况下,如果在其他主机提供商中不使用专利,它会自动保存0。那么,在hostgator中发生这种情况是因为严格的mysql已打开吗?这就是严格配置的目的。谢谢大家的回答。