我使用以下PHP代码从mysql数据库中删除我的数据。它为我工作,但它重定向了另一个名为delete_ac.php
的页面。我想将它保存在同一页面(index.php
)中,如果可能的话,我想使用jquery,以便在不重定向页面的情况下删除数据。
的index.php
<?php
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
?>
<tr>
<td bgcolor="#FFFFFF" style="border:1px solid black" >
<?php echo $row[0].' '; ?>
</td>
<td bgcolor="#FFFFFF" style="border:1px solid black">
<?php echo $row[1]; ?>
</td>
<td bgcolor="#FFFFFF">
<a href="delete_ac.php?id=<?php echo $row[0]; ?>">delete</a>
</td>
</tr>
<?php
}
?>
<?php include 'footer.php'; ?>
delete.ac.php
<?php
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());
mysql_select_db("dbname");
$tbl_name="tablename"; // Table name
// get value of id that sent from address bar
$id=$_GET['id'];
// Delete data in mysql from row that has this id
$sql="DELETE FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
// if successfully deleted
if($result){
echo "Deleted Successfully";
echo "<BR>";
echo "<a href='index.php'>Back to main page</a>";
}
else {
echo 'Error';
}
?>
<?php
// close connection
mysql_close();
?>
答案 0 :(得分:0)
正如其他人所提到的,请查看SQL prepared statements。
要回答您的问题,您可以使用以下内容进行ajax调用
$.ajax({
method: "POST",
url: "delete.ac.php",
data: { id: PUT_YOUR_ID_VALUE}
});
并在$id=$_GET['id'];
$id=$_POST['id'];
更改为delete.ac.php
这是一个使用PDO的新index.php
,无需第二个单独的页面。它并不完美,而且还有一些东西仍然可以清理,但这就是我改变它的方式(尽量保持尽可能接近你发布的代码)
<?php
//Run the following code if and only if a POST
//request is made to this page.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());
mysql_select_db("dbname");
//This is really important. This is a predefined statement
//the code you had is at risk for SQL injection. Please read up on this
$sql = "DELETE FROM :TABLENAME WHERE id = :ID";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':ID', $_POST['id']);
$stmt->bindParam(':TABLENAME', "tablename"); //put tablename here
$stmt->execute();
}
// This ends the 'POST' code
//
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
?>
<tr>
<td bgcolor="#FFFFFF" style="border:1px solid black" >
<?php echo $row[0].' '; ?>
</td>
<td bgcolor="#FFFFFF" style="border:1px solid black">
<?php echo $row[1]; ?>
</td>
<td bgcolor="#FFFFFF">
<a href="javascript:delete(<?php echo $row[0]; ?>);">delete</a>
</td>
</tr>
<?php
}
?>
<script>
//We're creating a javascript function that will be called
//when the user clicks 'delete'. It takes the ID and passes it
//in the AJAX call
function delete(id){
$.ajax({
method: "POST",
url: "index.php",
data: { id: id}
});
}
</script>
<?php include 'footer.php'; ?>
答案 1 :(得分:0)
一个简单的答案是:
syncInterface
.ReplaceNodes(
syncInterface.Members.OfType<MethodDeclarationSyntax>(),
(a, b) =>
b.WithReturnType(
SyntaxFactory.GenericName("Task").AddTypeArgumentListArguments(b.ReturnType)))
.NormalizeWhitespace();
将其点击绑定到jquery
<td bgcolor="#FFFFFF"><a class="delete" href="delete_ac.php?id=<?php echo $row[0]; ?>">delete</a></td>