PHP:在mysqli prepare中插入空值

PHP:在mysqli prepare中插入空值,php,mysqli,Php,Mysqli,我的处境很奇怪。在我的数据库表中,字段定义为非空。当我在下面运行查询时,它不会显示echo“Data Added”的输出 但是,如果我通过phpmyadmin将字段定义更改为NULL=yes,那么它将显示添加的数据 $results = $mysqli->prepare("INSERT INTO posting (emp_id, title, open, description, keywords, min, max, ip_add) VALUES (?, ?, ?, ?, ?, ?, ?

我的处境很奇怪。在我的数据库表中,字段定义为
非空
。当我在下面运行查询时,它不会显示
echo“Data Added”的输出

但是,如果我通过phpmyadmin将字段定义更改为
NULL=yes
,那么它将显示添加的
数据

$results = $mysqli->prepare("INSERT INTO posting (emp_id, title, open, description, keywords, min, max, ip_add) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
$results ->bind_param("isisssss", $emp_id, $title, $open, $description, $keywords, $min, $max, $ip_add );

$results->execute();

if($results->affected_rows == 1){

            echo 'Data Added';
        }
我想知道我是否需要更改mysql表中的所有字段并使它们为Null=Yes,或者是否有其他方法来实现这一点


我做错什么了吗。请告知。

当PHPmyAdmin中的列设置为“not null”时,意味着您需要在该字段中有一些值,否则它将失败,因此简而言之,您的插入查询将失败,并且您将不会看到
回显“添加的数据”因为MySQL中的前一个错误不会影响任何行

至于什么应该设置为NULL取决于您的设置,一些字段可能是必需的,例如,您可能希望您的“emp_id”在记录中始终存在,以便将其设置为“NOT NULL”


设置字段属性并相应地更改代码,如果数据库中的字段是必填字段,则可以采取措施确保该字段在发送到数据库之前存在

如果需要,将表字段设置为默认值
null
,这是更好的方法。@fusion3k
min
max
没有保留。@fusion3k我看不到在中列出它们。你从哪里知道它们是保留的?这实际上是数据库设计的问题。您需要区分完全不分配字段和分配空值吗?@404如果您将表单文本字段留空,客户端应发送空字符串作为值,而不是空值。谢谢您的回答。投票通过。