php - 通过ajax Json格式提交时在mysql中插入查询问题

标签 php mysql json

我正在开发一个网站,我通过ajax以Json格式将数据插入到php页面,然后解码后将其发送到mysql数据库,但是如果我的字符串包含< > || & ' "字符,然后我的网页给出 php 错误。那么我应该如何进一步进行。它不允许插入一些特殊字符..

 var obj = {"comment": commentText, "postID": postID};
                var commentData = 'commentData=' + JSON.stringify(obj);


                $.ajax({
                    type: "POST",
                    url: addNewCommentsUrl,
                    datatype: 'json',
                    data: commentData,
                    cache: false,
                    beforeSend: function() {
//                 $(document.body).off('click','.postComment');

                    },
                    success: function(result) {

                        commentBox.val("");
                        commentHolder.append(result);
//                     jQuery("#all-posts").masonry('reloadItems');
                        jQuery('#all-posts').masonry('layout');

                        var count = parseInt(parent.find("#commentContainer").text());
                        parent.find("#commentContainer").html(++count);

//                    $(document.body).on('click','.postComment');
                    }

                });// end of ajax

在 php 端

 $recievedData = $_POST['commentData'];
            $recieveddatajson = json_decode($recievedData);
            $lastCommentID = $recieveddatajson->{'commentID'};
            $parentPostID = $recieveddatajson->{'postID'};

最佳答案

好的,我明白你在做什么。你不需要这样做。这是您的问题的简化版本,向您展示如何实现 ajax post:

test.php

<?php

// Handle Post
if (count($_POST))
{
    echo "You posted\r\n";
    print_r($_POST);
    exit();
}

?>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">

$(document).ready(function()
{
    $.ajax({
        type: "POST",
        url: "test.php",
        data: { "comment": "hello world", "postID": 1234 },
        // data: { "comment": commentText, "postID": postID },
        success: function(result) {
            alert("Server Said:\r\n" + result);
        }
    });
});

</script>

输出:

enter image description here

<小时/>

因此,当请求发生时,data 字段及其值在 php 中可用,如下所示:

$comment = isset($_POST['comment']) ? $_POST['comment'] : '';
$postID = isset($_POST['postID']) ? $_POST['postID'] : '';

希望这有帮助。

关于php - 通过ajax Json格式提交时在mysql中插入查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23515351/

相关文章:

php - Wordpress - 获取作者图片

php - Google Analytics api PHP 使用未加密的用户名和密码

php - 您是否将存储库注入(inject)域对象?

php - 使用 MySQL 插入 18000 多行的最佳方法

json - 不支持应用于文档的架构类型 package.json

php - IMAP 适用于我的本地计算机,但不适用于共享主机

MySQl 事件不起作用

mysql - 带有 PARTITION BY 子句的 ROW_NUMBER() 停止在 MariaDB 上工作

c# - 从字符串中创建 JSON

arrays - Go 如何反序列化混合类型的 JSON 数组