Php 使用JSON插入时出现的问题

Php 使用JSON插入时出现的问题,php,jquery,mysql,ajax,json,Php,Jquery,Mysql,Ajax,Json,我正在尝试像这样插入数据 function submitData() { //Posting to ContactDB with JSON format $.post("contactDB.php", JSON.stringify({ name: $("#name").val(), email: $("#email").val(), phone: $("#phone").val(), message: $(

我正在尝试像这样插入数据

function submitData() {
//Posting to ContactDB with JSON format
$.post("contactDB.php",
    JSON.stringify({ 
          name: $("#name").val(),
          email: $("#email").val(),
          phone: $("#phone").val(),
          message: $("#message").val() 
    }),
    function(usrava){
        // if data is inserted successfully than show insert success message in Result div
        if(usrava=='Data Inserted')
        {
            $("#result").fadeTo(200,0.1,function(){ 
                $(this).html('Your message is successfully saved with us. We will get back to you soon.').fadeTo(900,1);
            });     
        }
        //else show the error 
        else
        {
            $("#result").fadeTo(200,0.1,function(){ 
                $(this).html(usrava).fadeTo(900,1);
            });
        }
    });
}   
'NameData','EmailData','PhoneData','MessageData'
ContactDB.php
有一些
字符串
值。您需要正确使用
s

VALUES ('" .implode("','",$data)."')"
解释

您正在使用的代码生成的值类似于-
值('name,email,phone,message')
,这在语法上是错误的。它们都是
string
s,需要包装在
'
s中

(“.”内爆(“,”,$data)。“”)
-将正确地包装它们。它将生成-
值('name'、'email'、'phone'、'message')
请尝试以下操作:

$postdata =  implode("','", $data) ;

$insert = "INSERT INTO contact(Name,Email,Phone,Message) VALUES ('$postdata')";

函数内爆将用字符串连接数组元素。现在,您的函数是
内爆(“,”,$data)
,它将使字符串如下所示

NameData,EmailData,PhoneData,MessageData 
而你会希望这样做

function submitData() {
//Posting to ContactDB with JSON format
$.post("contactDB.php",
    JSON.stringify({ 
          name: $("#name").val(),
          email: $("#email").val(),
          phone: $("#phone").val(),
          message: $("#message").val() 
    }),
    function(usrava){
        // if data is inserted successfully than show insert success message in Result div
        if(usrava=='Data Inserted')
        {
            $("#result").fadeTo(200,0.1,function(){ 
                $(this).html('Your message is successfully saved with us. We will get back to you soon.').fadeTo(900,1);
            });     
        }
        //else show the error 
        else
        {
            $("#result").fadeTo(200,0.1,function(){ 
                $(this).html(usrava).fadeTo(900,1);
            });
        }
    });
}   
'NameData','EmailData','PhoneData','MessageData'

因此,要做到这一点,您需要使内爆函数看起来像这样
内爆(“',”,$data)
,并且第一个和最后一个
s已经从您编写的代码中输入

回显$insert,我猜语法不正确,请检查#result div,它显示的$data已经是一个关联数组,因此使用内爆将生成一个不同的字符串,然后再执行查询,只需打印$data即可,您将看到它与SQL语法不符,您需要删除
'
s(
$postdata
Yes@b0s3)周围的
'
s是正确的。如果没有
$postdata上的,这就行了。你能解释一下内爆吗,因为我是新来PHP的。哇,这是对我要找的东西的一个很好的解释