2015-09-30 115 views
1

从本网站下面的几个例子后,我想我即将做到,但仍然不能。使用PHP和AJAX进行Mysql更新,无法更新数据库

我有这样的代码:

HTML

... 
<a href="javascript:void(0);" class="button red big" style="font-size:24px;" onclick="update_it(<?=$_REQUEST["yeah"]["id"];?>);">Pay</a> 
... 

AJAX

function update_it(n_id){ 
    $.ajax({ 
     type: 'POST', 
     url: 'update_yes.php', 
     data: {idd: n_id}, 
     success: function(output) 
     { 
      alert('Updated, server says '+n_id); 
     }, error: function() 
     { 
      alert('Wrong!'); 
     } 
    }); 
} 

PHP

<?php 
    $link = mysqli_connect("localhost", "root", "****", "****"); 
    $sql = "DELETE FROM stuff WHERE id = " .$_POST["idd"]; 
    mysqli_query($link,$sql) or die(mysql_error()); 
?> 

一切正常,但PHP(我认为)。我这样说是因为我可以看到HTML如何正常工作以及AJAX函数如何返回成功消息,但数据库中仍然没有任何反应。

我尝试了AJAX函数的数据字段中的不同结构,如data: 'idd': n_id,data: 'idd=' n_id,,但似乎没有任何结果。

我在做什么错?任何提示或建议?先谢谢你。

+0

在PHP代码中建立查询之后,您是否尝试过var_dump($ sql)?它将帮助我们看到你发送到数据库的内容。 – Musa

+0

你可以请var_dump $ link和$ sql和mysqli_query结果,以便我们看到问题出在哪里? –

+0

除了易于SQL注入外,代码示例看起来很好,应该可以工作。可能PHP从未执行过。检查执行到那个点的PHP文件。 – marekful

回答

0

好吧,最后我找到了解决方案。

代码很漂亮,它是apache所有权和维权问题。

This帮了很大忙。

谢谢各位的意见。

+0

你可以用post中的罚款替换find ... –

0

你应该加入退出;在PHP代码结束语句。回声一些成功声明。然后你应该在javascript中提醒输出变量。所以你可以确保调用php代码。

+0

好吧,添加退出功能和一些“回声”和一些JavaScript“提醒”后​​没有发生任何事情,所以我想我没有达到文件。会是什么呢?如果我移动文件或者只是改变它的名字,我会得到AJAX函数错误信息。我不知道该怎么办。 – Zariweya

1

我在Winodws上使用apache MySQL和php。我有同样的问题。 我有我的更新脚本这是所谓的AJAX

  1. 一个UPDATE SQL语句
  2. 查询从数据库MySQL的
  3. 尝试更新不改变的记录,(我的意思是简单的更新 行使用相同的数据)

然后...我什么都没有更新,因为它是错误的AJAX查询其称之为UPDATE语句在你的服务器端脚本。但是,如果您在任何保存(更新)数据对其进行一些更改之前它将起作用。

我使用REPLACE声明而不是UPDATE

我在这个解决方案上寻找了很多时间,真的太多了。我不明白为什么会发生这种情况,因为当我在服务器上调试带有自己params的整个脚本并且所有脚本都正常工作时,但是当Ajax只帮助REPLACE时。