PHP:在mysqli prepare中插入NULL值

时间:2016-02-23 19:33:37

标签: php mysqli

我处境很奇怪。在我的数据库表中,字段定义为NOT NULL。当我在查询下面运行时,它不会显示echo 'Data Added';

的输出

但如果我通过phpmyadmin将字段定义更改为NULL=yes,那么它会显示Data Added

$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或者还有其他方法可以实现此目的吗?

我在这里做错了什么。请指教。

1 个答案:

答案 0 :(得分:1)

当PHPmyAdmin中的列设置为'not null'时,表示您需要在该字段中有一些值,否则会失败,因此简而言之,您的INSERT查询将失败,您将看不到echo 'Data Added';因为MySQL中的先前错误没有影响任何行。

至于你应该做什么NULL取决于你的设置,某些字段可能是必需的,例如你可能希望你的'emp_id'在记录中一直存在,所以你会把它变成'非空'。 / p>

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