使用ajax更新数据库中的表

时间:2017-09-01 13:13:10

标签: php jquery mysql ajax

我想在我的页面中插入所选文本,点击我页面中的按钮,但我的问题是它是doenst insert。选择文本是正确的我测试了它。 我收到的回复是我选择的文本

这是我的索引页面,我将文本传递给变量文本

    <script src="jquery-3.2.1.min.js"></script>
    <script>
        $(document).ready(function () {
            var text = $("span:not([dir=rtl])").text();
            $("#btn").click(function () {
                $.ajax({
                    type:'post',
                    url:'process.php',
                    data:{'text':text},
                    success:(function (response) {
                        alert(response);
                    })
                })
            })
        })
    </script>

这是我的process.php,它连接到数据库并执行查询但运行else语句

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "sahifeDB";
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = 'update sahife_tbl set english ='. $_POST['text'].' where id=1 ';
$result = $conn->query($conn,$sql);
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

2 个答案:

答案 0 :(得分:0)

您需要将"放在update语句中,因为数据类型是字段

的文本

将您的查询更改为:

$sql = 'update sahife_tbl set english ="'. $_POST['text'].'" where id=1 ';

还可以使用预备语句来防止sql注入

答案 1 :(得分:0)

您需要在查询中放置字符串值的引号,否则您的数据库将尝试解析文本作为语法的一部分并摔倒。

$sql = "update sahife_tbl set english ='". $_POST['text']."' where id=1 ";

但是,正如我在你的问题评论中提到的,这是超级不安全的,你想要使用参数化 - https://stackoverflow.com/a/60496/635522