为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax POST 与 mysqli 数据库查询

Ajax POST 与 mysqli 数据库查询

PHP
达令说 2022-12-23 12:56:02
我正在尝试让 Ajax POST 到与主索引位于同一目录中的 another.PHP 文件。我的想法是,我想要一个人们可以写入并在数据库中即时更新的在线日记。目前,我的ajax看起来像这样    $('#diary').on('input propertychange', function() {    $.ajax({        type: "POST",        url: "updatedatabase.php",        data: {content: $('#diary').val()},        success: function(  msg  ) {             alert('Data Saved: ' + msg);         },        dataType: "text"    });});我的 PHP 在 updatedatabase.php 页面上看起来像这样<?phpsession_start();if ($_POST['content']) {$link = mysqli_connect("location", "username", "password", "databasename");if (mysqli_connect_error()) {    echo "Could not connect to database";    die;}$query = "UPDATE `users` SET `Diary` = '".mysqli_real_escape_string($link, $_POST['content'])."' WHERE email = '".mysqli_real_escape_string($link, $_SESSION['email'])."' LIMIT 1";if (mysqli_query($link, $query)) {    echo "Success";} else {    echo mysqli_error($link);    echo "Failure";}}?>我试过从 .on 更改为 .bind,我试过 ajax 代码的不同变体和更新数据库代码,我试过查看 StackOverflow。ps 我知道在 mysqli 查询注入中有几个安全错误。这主要是为了我自己的实践和学习之旅,但我正在努力弄清楚这一点。提前谢谢了。
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

用于.on('change')绑定到输入事件。

此外,如果您要使用 ajax,请不要使用 slim minified jquery 库,它不包含在内。

编辑:我使用这段 html/js 使脚本正常工作:

<script

        src="https://code.jquery.com/jquery-3.4.1.min.js"

        integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="

        crossorigin="anonymous"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>

<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>


<script type="text/javascript">


  $('#diary').on('change', function() {

    $.ajax({

      type: "POST",

      url: "updatedatabase.php",

      data: {content: $('#diary').val()},

      success: function(  msg  ) {

        alert('Data Saved: ' + msg);

      },

      dataType: "text"

    });

  });


</script>

//img1.sycdn.imooc.com/63a535070001025a04520199.jpg

查看完整回答
反对 回复 2022-12-23
?
森栏

TA贡献1810条经验 获得超5个赞

您应该像这样使用 jQuery中的更改:

 $('#diary').on('change', function() {
     code...
 });

要么

 $(document).on('change', '#diary', function() {
     code...
 });

或者如果 #diary 不是动态创建的(在运行时),你可以这样做:

 $('#diary').change(function() {
     code...
 });


查看完整回答
反对 回复 2022-12-23
  • 2 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信