【问题标题】:How I can delete row from MySQL table如何从 MySQL 表中删除行
【发布时间】:2015-08-23 10:36:17
【问题描述】:

我有一个问题阻止我继续我的项目。在运行查询时无法删除某个行 ID 之前,我无法理解出了什么问题。

我的代码,一步一步:

(1) 这是按钮代码,一旦我单击它会发出一条弹出消息以确认删除,一旦我确认删除(确定),在浏览器上它会显示该行已删除(消失)并且当我刷新时页面,数据再次出现,表示它没有被删除。

<input type="button" onclick='return deletethis(this)' class="btn btn-
triangle btn-red" value="X">

(2)以及java代码:

<script type="text/javascript">
function deletethis(el){
    var e = $(el).parent().attr('id');
    var cnf = confirm('Are you sure, you want to delete?');
    if(cnf == true){
        $(el).parent().parent().hide(1000);
        $.post('deleteAdd.php', {id:e}, function(data){

        });
       }
     }
   </script>

(3) 这是“deleteAdd.php”文件,其中包含用于删除的 PHP 代码

<?php
  global $database;
  $uid = $_POST['id'];

  $q = "DELETE FROM sale_daily WHERE id=$uid";
  $r = $database->query($q);
  $rw = $database->fetch_array($r);
  ?>

【问题讨论】:

  • 您很容易受到sql injection attacks 的攻击。享受您的数据库 pwn3ed。同样,您没有“java 代码”。您有 JAVASCRIPT 代码。它们是两种完全不同的语言。您是否进行过任何基本调试,例如检查 e 是否确实包含您想要的 JS 值,并且它是否显示在服务器上的 $uid 中?
  • 如果您只是从数据库中删除一行,我认为您不需要获取任何内容。
  • 尝试连接帖子 var "DELETE FROM sale_daily WHERE id=".$uid."
  • 还要检查您是否连接到数据库。尝试获取一些记录作为测试以确认这一点。
  • 这是从哪里获得价值的? $_POST['id']

标签: javascript php mysql


【解决方案1】:

您传递了错误的id 值。

更改这行代码:

var e = $(el).parent().attr('id');

到

var e = $(el).parent().attr('value');

【讨论】:

    猜你喜欢
    • 2017-09-30
    • 2011-08-11
    • 1970-01-01
    • 2017-10-20
    • 2011-07-18
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多