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注入攻击-请参阅此处了解如何更好地解决此问题:您的表中的英文字段类型是什么?