Skip to content
Advertisement

Upload data to database with JSON [closed]

How can I upload data to database with AJAX, JSON and PHP? Here is the code.

AJAX

    function saveToTheDB(ratedIndex) {
        $.ajax({
            url: 'fetch.php',
            method: 'POST',
            cache: 'false',
            dataType: 'json',
            data: {
                ratedIndex: ratedIndex
            },
            success: function(data) {
                console.log(data);
            },
            error: function(error) {
                console.log(error);
            }
        });
    }

PHP

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    require_once 'includesdbh.inc.php';
    $rate = $_POST['ratedIndex'];
    if(isset($_GET['userid'])){
    if($db->query(" INSERT INTO `recipes_ratings` (`recipe_rating_id`, `recipe_id`, `user_id`, `rating`)
    VALUES (null, 3 , 8, '".$rate."')
    "))   
    }
    echo json_encode($rate);
}

What have I done wrong? Can some one help me to solve this problem? Thank you very much!

EDIT

ERROR I get back a full object

Advertisement

Answer

As the response points you have syntax error, here I refactored your code in order to work.

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    require_once 'includesdbh.inc.php';
    $rate = $_POST['ratedIndex'];

    if (isset($_GET['userid'])) {
        if($db->query("INSERT INTO `recipes_ratings` (`recipe_rating_id`, `recipe_id`, `user_id`, `rating`) VALUES (null, 3 , 8, '".$rate."')")) {
            // implementation if query is successful
        } 
    }

    echo json_encode($rate);
}

JFYI: Avoid directly placing the input variables into the query, you should use Prepared Statements.

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement