简体   繁体   English

如何从mysql / php中的json对象中选择数据?

[英]How can I select data from a json object in mysql/php?

I'm sending JSON to my server via jQuery's ajax method. 我正在通过jQuery的ajax方法将JSON发送到服务器。 Here's my jquery, and im pretty sure this is fine: 这是我的jQuery,我很确定这很好:

function stuffs() {
    this.fname = document.getElementById("fname").value;
    this.lname = document.getElementById("lname").value;
    this.email = document.getElementById("email").value;    
}
$(function() {
function ajaxhelper(data){
    //console.log(JSON.stringify(data));
    //this returns "{"fname":"mike","lname":"smith","email":"a@a.a"}" which is what i expect
        $.ajax({
        url: 'postdb.php',
        type: 'POST',
        data: {data : JSON.stringify(data)},
        success: function(data) {
            console.log(JSON.stringify(data));
            console.log("Success");
        },
        error: function(e) {
            console.log(e);
        }

    });
}
$("form").on('submit', function(e){
    e.preventDefault();
    var data = new stuffs();
    ajaxhelper(data);
    //window.location = "postdb.php";
    });
    });
</script>

I get back an 500 server error. 我回来了500服务器错误。 Here's my php code. 这是我的PHP代码。 (yes i'm only sending it an fname that i've preloading into my database, $con is valid i just didnt share the code to connect to my database) (是的,我只向它发送一个已经预加载到数据库中的fname,$ con是有效的,我只是没有共享代码以连接到我的数据库)

$obj = json_decode($_POST['data']);

$sql = "SELECT * FROM testtable WHERE fname = \"$obj->{'fname'}\"";
$query = $con->query($sql);

I think my sql is incorrect due to the quotes? 我认为由于引号,我的sql不正确? This is where im stuck. 这就是我卡住的地方。

尝试使用$obj->fname代替$obj->fname $obj->{'fname'}

Here is the correct syntax for your SQL Statement 这是您的SQL语句的正确语法

$sql = "SELECT * FROM testtable WHERE fname = '".$obj->fname."'"; $ sql =“ SELECT * FROM testtable WHERE fname ='”。$ obj-> fname。“'”;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM