如果sql命令正确且数据库太差,则即使sql命令正确,PHP sql insert代码也会返回false

如果sql命令正确且数据库太差,则即使sql命令正确,PHP sql insert代码也会返回false,php,mysql,Php,Mysql,我再一次带着另一个问题回到大家面前 我已经尝试了我头脑中的一切,以及我在网上和Stackoverflow这里找到的大多数建议,但似乎没有任何东西能解决这个问题 出于某种原因,我的代码中的sql命令返回false,尽管它不应该返回false 这是我的php文件(dbRKS DBTest.php) 以下是您运行的SQL代码: $sql = "INSERT INTO rpgp_form_table_3 (idPI, RKS_REQ_1_Develop) VALUES

我再一次带着另一个问题回到大家面前

我已经尝试了我头脑中的一切,以及我在网上和Stackoverflow这里找到的大多数建议,但似乎没有任何东西能解决这个问题

出于某种原因,我的代码中的sql命令返回false,尽管它不应该返回false

这是我的php文件(dbRKS DBTest.php)


以下是您运行的SQL代码:

$sql = "INSERT INTO rpgp_form_table_3 (idPI, RKS_REQ_1_Develop) 
                VALUES ('$PI_Selected', '$RKS_REQ_1_Develop')";  
您正在将数据插入
rpgp\u form\u table\u 3
。从屏幕截图中,我们可以看到表中有几个(7)字段,但您只插入了2个字段。接下来的问题是:是否需要为所有字段指定一个值

您正在获取的错误状态

php给出的错误是:字段“idCollaRecord_1”没有默认值错误!无法保存数据库

很明显,您必须通过为每一列指定一个值来插入行,而不仅仅是您感兴趣的两列

试一试


请尝试此插入代码。如果选择的PI_为数字,则使用第一个。如果是字符串,则使用第二个字符串

    $sql = "INSERT INTO rpgp_form_table_3 (idPI, RKS_REQ_1_Develop) VALUES (" . 
    $PI_Selected . ",'" . $RKS_REQ_1_Develop . "')";

    $sql = "INSERT INTO rpgp_form_table_3 (idPI, RKS_REQ_1_Develop) VALUES ('" . 
    $PI_Selected . "','" . $RKS_REQ_1_Develop . "')";

你好,大卫。谢谢你的回复。据我所知,在向sql表插入值时,不需要指定要插入数据库的所有值,因为我定义了要用什么填充哪些诽谤。然后,我再次测试了你的建议,以防万一,结果还是不起作用,(你是对的:在SQL中,你可能(注意可能)不需要提供所有的值。这取决于你的模式。仔细考虑后,我注意到我没有像你说的@David那样定义数据库中的每个表。当我定义了所有表时,它解决了这个问题,我的朋友。我非常感谢你。
$sql = "INSERT INTO rpgp_form_table_3 (idPI, RKS_REQ_1_Develop) 
                VALUES ('$PI_Selected', '$RKS_REQ_1_Develop')";  
$sql = "INSERT INTO rpgp_form_table_3 (idPl, RKS_REQ_1_Develop, idCollaRecord_1, idCollaRecord_2, idCollaRecord_3, idCollaRecord_4) 
                VALUES ('$PI_Selected', '$RKS_REQ_1_Develop',0,0,0,0)";  
    $sql = "INSERT INTO rpgp_form_table_3 (idPI, RKS_REQ_1_Develop) VALUES (" . 
    $PI_Selected . ",'" . $RKS_REQ_1_Develop . "')";

    $sql = "INSERT INTO rpgp_form_table_3 (idPI, RKS_REQ_1_Develop) VALUES ('" . 
    $PI_Selected . "','" . $RKS_REQ_1_Develop . "')";