Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用ajax更新数据库中的表_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php 用ajax更新数据库中的表

Php 用ajax更新数据库中的表,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我想通过单击我的页面中的按钮在表中的页面中插入所选文本,但我的问题是它无法插入。选择文本是正确的,我测试了它。 我收到的回复是我选择的文本 这是我的索引页,我将文本传递到变量文本中 <script src="jquery-3.2.1.min.js"></script> <script> $(document).ready(function () { var text = $("span:not([dir=

我想通过单击我的页面中的按钮在表中的页面中插入所选文本,但我的问题是它无法插入。选择文本是正确的,我测试了它。 我收到的回复是我选择的文本

这是我的索引页,我将文本传递到变量文本中

    <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();
?>
您需要放入update语句,因为字段的数据类型是文本

将查询更改为:

$sql = 'update sahife_tbl set english ="'. $_POST['text'].'" where id=1 ';
还可以使用准备好的语句来防止sql注入,因为字段的数据类型是文本,所以您需要放入update语句

将查询更改为:

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

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

您需要在查询中的字符串值周围加引号,否则DB将尝试将文本作为语法的一部分进行解析,并将其忽略

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

但是,正如我在对您的问题的评论中所提到的,这是非常不安全的,您希望改用参数化-

您需要在查询中的字符串值周围加上引号,否则您的DB将尝试将文本作为语法的一部分进行解析,然后崩溃

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

但正如我在对您的问题的评论中所提到的,这是非常不安全的,您希望使用参数化来代替-

console是否显示任何东西显示您得到的响应…您不希望将POST变量直接连接到SQL中。这使您容易受到SQL注入攻击-请参阅此处了解如何更好地解决此问题:表中的英文字段类型是什么?console是否显示任何内容显示作为响应得到的内容…您不希望将POST变量直接连接到SQL中。这使您容易受到SQL注入攻击-请参阅此处了解如何更好地解决此问题:您的表中的英文字段类型是什么?