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

创建删除 php 表单

创建删除 php 表单

PHP
慕田峪4524236 2022-09-03 17:43:21
我在尝试使用PHP中创建删除表单以使用提供给客人的ID删除数据时遇到问题。我是这种东西的新手。这是错误:Error: DELETE FROM MyGuests WHERE id= LIMIT 1You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 1' at line 1这是我的删除.php:<?phpinclude_once('mysql.php');$ins= "DELETE FROM MyGuests WHERE id=$id LIMIT 1";if ($conn->query($ins) === TRUE) {    echo "Record deleted successfully";} else {    echo "Error: " . $ins . "<br>" . $conn->error;}?><!DOCTYPE html><html><body><a href='index.php'>Home</a><br><h2>Delete User</h2><form action="/delete.php" method="post">  Guest ID:<br>  <input type="text" name="id" >  <br><br>  <input type="submit" value="Submit"></form> </body></html>
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

作为最简单的解决方法:


<?php


include_once('mysql.php');


// make sure that form is submitted    

if (isset($_POST['id'])) {


    $ins = "DELETE FROM MyGuests WHERE id=" . $_POST['id'] . " LIMIT 1";

    if ($conn->query($ins) === TRUE) {

        echo "Record deleted successfully";

    } else {

        echo "Error: " . $ins . "<br>" . $conn->error;

    }

}?>

另请注意,将原始 /值传递到查询文本中是不安全的。由于您没有提到您使用的API(PDO或mysqli),因此我在查询中串联了值,但您不得这样做。尽快移至预准备语句。$_POST$_GET$_POST


预准备语句版本(我假设您根据比较使用):mysqli


$ins = "DELETE FROM MyGuests WHERE id=? LIMIT 1";

$st = $conn->prepare($ins);

$st->bind_param('i', $_POST['id']);


if ($st->execute() === TRUE) {

    echo "Record deleted successfully";

} else {

    echo "Error: " . $ins . "<br>" . $conn->error;

}


查看完整回答
反对 回复 2022-09-03
?
慕工程0101907

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

$id未定义。您正在提交表单,因此它可能应该是:DELETE FROM MyGuests WHERE id={$_POST['id']}

你也不应该需要 LIMIT 1。我想它总是只删除1条记录。


查看完整回答
反对 回复 2022-09-03
  • 2 回答
  • 0 关注
  • 85 浏览

添加回答

举报

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