在数据库表中插入带有MySQLi的数据不起作用?连接工作正常


insert data with mysqli in database table not working?connection works perfectly

  • 它应该说新记录,然后我应该能够在项目表中看到新数据

  • 与数据库文件的连接包含:

        $server="localhost";
        $login="root";
        $pass="";
        $database="floweritem";
        $con=mysqli_connect($server,$login,$pass,$database);
        if(mysqli_connect_errno()){
        echo "Failed connect to MYSQL".mysqli_connect_error();
        }
    
  • 表单操作

  • .PHP

        <?php
        if(isset($_POST['submit'])){
        $Name=mysqli_real_escape_string($con,$_POST['Name']);
        $Desc=mysqli_real_escape_string($con,$_POST['Desc']);
        $Size=mysqli_real_escape_string($con,$_POST['Size']);
        $Price=mysqli_real_escape_string($con,$_POST['Price']);
    
        //no problwm with connection to table or database
        $sql="INSERT INTO `items`(`Name`,`Description`,`Size`,`Price`) 
        VALUES($Name,$Desc,$Size,$Price)";
        echo $Desc;
    
        if(mysqli_query($con,$sql)){ 
        echo "new record";
        }
        //always get wrong
        //can't find problem
        else{echo"Wrong";}
        mysqli_close($con);
        }
        ?>
    
  • 显示$Desc但不成功在项目表中插入数据

新的 php 代码应该是这样的

<?php
    if(isset($_POST['submit'])){
    $Name=mysqli_real_escape_string($con,$_POST['Name']);
    $Desc=mysqli_real_escape_string($con,$_POST['Desc']);
    $Size=mysqli_real_escape_string($con,$_POST['Size']);
    $Price=mysqli_real_escape_string($con,$_POST['Price']);

    //no problwm with connection to table or database
    $sql="INSERT INTO `items`(`Name`,`Description`,`Size`,`Price`) 
    VALUES('$Name','$Desc','$Size','$Price')";
    echo $Desc;

    if(mysqli_query($con,$sql)){ 
    echo "new record";
    }
    //always get wrong
    //can't find problem
    else{echo"Wrong";}
    mysqli_close($con);
    }
    ?>

您需要对值添加单引号。

更正的代码:

 //no problwm with connection to table or database
    $sql="INSERT INTO `items`(`Name`,`Description`,`Size`,`Price`) 
    VALUES('$Name','$Desc','$Size','$Price')";
    echo $Desc;
否则,MySQL

会将用户输入的值视为MySQL关键字,从而创建语法错误。

试试这个它的工作:

.PHP:

<?php
    if(isset($_POST['submit'])){
    $Name=mysqli_real_escape_string($con,$_POST['Name']);
    $Desc=mysqli_real_escape_string($con,$_POST['Desc']);
    $Size=mysqli_real_escape_string($con,$_POST['Size']);
    $Price=mysqli_real_escape_string($con,$_POST['Price']);

    //no problwm with connection to table or database
    $sql="INSERT INTO `items`(`Name`,`Description`,`Size`,`Price`) 
    VALUES('$Name','$Desc','$Size','$Price')";
    echo $Desc;

    if(mysqli_query($con,$sql)){ 
    echo "new record";
    }
    //always get wrong
    //can't find problem
    else{echo"Wrong";}
    mysqli_close($con);
    }
    ?>