Php 其他表工作时,我的数据未插入数据库

Php 其他表工作时,我的数据未插入数据库,php,mysql,database,sql-insert,Php,Mysql,Database,Sql Insert,当我通过PHP将数据插入缺少的表中时,我遇到了一个问题,该表没有插入,而当我将表名更改为它插入的其他内容时。 下面是代码和数据库表 <?PHP session_start(); include'includes/connection.php'; if(isset($_GET['type'])){ $type= $_GET['type']; switch ($type) { case 'missingperson': if (isset($_POST['submit']

当我通过PHP将数据插入缺少的表中时,我遇到了一个问题,该表没有插入,而当我将表名更改为它插入的其他内容时。 下面是代码和数据库表

<?PHP
session_start();
include'includes/connection.php';
if(isset($_GET['type'])){
$type=  $_GET['type'];
switch ($type) {


    case 'missingperson':
    if (isset($_POST['submit'])) {
        $fname=$_POST['name'];

            $query=$conn->query("insert into missing_mans(name) values('$fname')");
            if ($query) {
                echo "Sucess";
            }
            else{
                    
                echo "issue";
            }
        

    }
    break;

使用以下方法之一:


放置此查询而不是您的查询:

$query = $conn->query("INSERT INTO `missing_mans` (`id`, `name`, `father_name`, `age`, `color`, `height`, `gender`, `description`, `picture`, `address`, `user_id`, `district_id`, `missing_data`, `status`) VALUES (NULL, '" . $fname . "', '', 0, '', 0, '', '', '', '', 0, 0, CURRENT_DATE(), 0)");

在数据库中执行此查询,然后再次运行自己的php代码:

ALTER TABLE   `missing_mans`   MODIFY   `name`            VARCHAR    (25)   NULL;
ALTER TABLE   `missing_mans`   MODIFY   `father_name`     VARCHAR    (25)   NULL;
ALTER TABLE   `missing_mans`   MODIFY   `age`             INT        (20)   NULL;
ALTER TABLE   `missing_mans`   MODIFY   `color`           VARCHAR    (20)   NULL;
ALTER TABLE   `missing_mans`   MODIFY   `height`          INT        (20)   NULL;
ALTER TABLE   `missing_mans`   MODIFY   `gender`          VARCHAR    (30)   NULL;
ALTER TABLE   `missing_mans`   MODIFY   `description`     TEXT              NULL;
ALTER TABLE   `missing_mans`   MODIFY   `picture`         VARCHAR    (30)   NULL;
ALTER TABLE   `missing_mans`   MODIFY   `address`         TEXT              NULL;
ALTER TABLE   `missing_mans`   MODIFY   `user_id`         INT        (30)   NULL;
ALTER TABLE   `missing_mans`   MODIFY   `district_id`     INT        (2)    NULL;
ALTER TABLE   `missing_mans`   MODIFY   `missing_data`    DATE              NULL;
ALTER TABLE   `missing_mans`   MODIFY   `status`          TINYINT    (1)    NULL;

许多数据库列被标记为
NOT NULL
,并且没有任何默认值,这将导致错误,并且不允许您插入记录。允许在其他列中使用null或为每个列传递值。如果要使用null值,则需要验证$fname=$\u POST['name'];并使用值(““$fname.”)。。建议:进行更好的验证,您的系统可以是vunarable。@user1149440如何验证验证
echo“issue”意味着什么?
是无用的balast,请使用php mysqli错误处理程序www.php.net/manual/$query=“选择missing.id作为id,missing.name作为name,missing.father\u name作为father\u name,missing.age作为age,missing.missing\u date作为missing\u date,missing.picture作为picture,district.district\u name作为dname,user.name作为uname from missing internal join district.district\u id=district.id内部join user on missing.user\u id=user.id”"; 当我把where类放在最后一节时,它不工作了,请告诉我怎么做?