提问者:小点点

为什么在mysql数据库中只插入第一个字符


它是一个完美的JSON字符串。

(&P; 这是我的代码,

$("#button").click(function(e)

{

    data = {};
    $(document).find('[name]').each(function(index , value)
    {
    name = $(this).attr('name'),
    value = $(this).val();
    data[name] = value;
    });
    dataString = JSON.stringify(data);
    //console.log(dataString);
    $.ajax({
    url : "empcontact.php",
    type : "post",
    data : dataString, 
    success : function (response) {
    console.log(response);
    }
    })
    return false;
    }); 

----------------------------------------- -----------------------------------------             
    $requestpayload =  file_get_contents("php://input");
        $array = json_decode($requestpayload , true);
    
            foreach($array as $row)
            {   
                $name = $row['txtname'];
                $gender = $row['txtgender'];
                $designation = $row['txtdesignation'];
    
                $sql = "INSERT INTO tbl_employee (Name, Gender, Designation) VALUES ('$name' , '$gender' , '$designation')";
                
                mysqli_query($connect, $sql);
            }
        
            
            echo "Employee data submitted successfully"; 


共1个答案

匿名用户

您通过ajax发送的JSON不是Array类型。 您应该将数组发送到服务器,或者将其视为服务器上的一个简单对象。

如果您的JS代码是正确的,那么您需要修改您的PHP:

$row = json_decode($requestpayload , true);
$name = $row['txtname'];
$gender = $row['txtgender'];
$designation = $row['txtdesignation'];

$sql = "INSERT INTO tbl_employee (Name, Gender, Designation) VALUES ('$name' , '$gender' , '$designation')";
mysqli_query($connect, $sql);