Php 保护Mysql Delete语句的最佳方法是什么?
我想你们会知道最好的方法: 当我从ORDERS表中删除订单($prodId)时,该脚本将从ordered_items表中删除所有订购的项目行,该表包含系统中每个订单中订购的所有项目 是否有最佳实践来确保我想要删除的内容被删除并且仅此而已?我担心脚本中出现错误/注入错误/键入错误,意外地删除了所有订单的所有订购项目行。 这就是我走了多远Php 保护Mysql Delete语句的最佳方法是什么?,php,mysql,Php,Mysql,我想你们会知道最好的方法: 当我从ORDERS表中删除订单($prodId)时,该脚本将从ordered_items表中删除所有订购的项目行,该表包含系统中每个订单中订购的所有项目 是否有最佳实践来确保我想要删除的内容被删除并且仅此而已?我担心脚本中出现错误/注入错误/键入错误,意外地删除了所有订单的所有订购项目行。 这就是我走了多远 $delete_prod_items = mysqli_real_escape_string($con,$_REQUEST['prodId']); if (is_
$delete_prod_items = mysqli_real_escape_string($con,$_REQUEST['prodId']);
if (is_numeric($delete_prod_items)){
$sql3 = "DELETE from proteus.ordered_items where order_id = $orderId";
mysqli_query($con,$sql3) or die('DELETE Order $orderId from the Ordered Items table failed: ' . mysqli_error($con).'<br>');
}
$delete\u prod\u items=mysqli\u real\u escape\u string($con,$\u REQUEST['prodId']);
如果(是数字($delete\u prod\u items)){
$sql3=“从proteus.ordered\u项目中删除,其中order\u id=$orderId”;
mysqli_查询($con,$sql3)或die('DELETE Order$orderId from Ordered Items table failed:'。mysqli_错误($con)。'
';
}
- 此脚本通过我的表单发布到李>
- $orderID是脚本用于标识应删除哪些项目行的订单号
- $delete\u prod\u item是转义的$prodID值。我当时正试图非常谨慎。也许我不需要这个
我遗漏了什么吗?不知道为什么有人会提到它,但真正保护任何声明的最好方法是使用:
也要模仿@zerkms提到的内容,使用
POST
请求您的信息。不知道为什么会有人提到它,但真正保护任何声明的最佳方法是使用:
也要模仿@zerkms提到的内容,使用
POST
请求您的信息。不知道为什么会有人提到它,但真正保护任何声明的最佳方法是使用:
也要模仿@zerkms提到的内容,使用
POST
请求您的信息。不知道为什么会有人提到它,但真正保护任何声明的最佳方法是使用:
同样,遵循@zerkms提到的内容,并使用
POST
请求获取您的信息。首先,您需要注意sql注入。这将给你一个想法
其次,您可以使用javascript获得一个弹出窗口,要求用户在删除之前进行确认
接下来,为了避免意外删除多行,需要在查询中包含LIMIT 1
注意:您还可以通过创建不同的用户(用户名)来访问mysql数据库,并在
mysql\u connect('host','username','password','database')
函数中使用它来限制权限。如果您正在显示一些非常重要的内容,您可以考虑不删除权限。 首先,首先需要注意SQL注入。这将给你一个想法
其次,您可以使用javascript获得一个弹出窗口,要求用户在删除之前进行确认 接下来,为了避免意外删除多行,需要在查询中包含LIMIT 1
注意:您还可以通过创建不同的用户(用户名)来访问mysql数据库,并在
mysql\u connect('host','username','password','database')
函数中使用它来限制权限。如果您正在显示一些非常重要的内容,您可以考虑不删除权限。 首先,首先需要注意SQL注入。这将给你一个想法
其次,您可以使用javascript获得一个弹出窗口,要求用户在删除之前进行确认 接下来,为了避免意外删除多行,需要在查询中包含LIMIT 1
注意:您还可以通过创建不同的用户(用户名)来访问mysql数据库,并在
mysql\u connect('host','username','password','database')
函数中使用它来限制权限。如果您正在显示一些非常重要的内容,您可以考虑不删除权限。 首先,首先需要注意SQL注入。这将给你一个想法
其次,您可以使用javascript获得一个弹出窗口,要求用户在删除之前进行确认 接下来,为了避免意外删除多行,需要在查询中包含LIMIT 1
注意:您还可以通过创建不同的用户(用户名)来访问mysql数据库,并在mysql\u connect('host','username','password','database')
函数中使用它来限制权限。如果你正在展示一些非常重要的东西,你可以考虑不删除版权。UL>
$\u POST
来限制请求,而不是$\u request
- 转义数据有助于防止SQL注入
- 最好使用
来限制请求,而不是$\u POST
$\u request
- 如果此页面仅用于管理员,则可以,因为只有您有访问权限,但是,如果用户有访问权限,则最好在继续删除之前对请求应用一些条件(例如,验证他们是否仅删除与其帐户相关的内容)
- 转义数据有助于防止SQL注入
- 最好使用
来限制请求,而不是$\u POST
$\u request
- 如果此页面仅供管理员使用,则可以,因为只有您有访问权限,但是,如果用户有访问权限,则最好在继续删除之前对请求应用一些条件(例如,验证
$delete_prod_items = mysqli_real_escape_string($con,$_REQUEST['prodId']); $mysqli = new mysqli("localhost", "localuser", "password", "database"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: " . $mysqli->connect_error; } if (!($stmt = $mysqli->prepare("DELETE FROM `proteus`.`ordered_items` WHERE `order_id` = ?"))) { //whatever query you want echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error; } $stmt->bind_param("s", $delete_prod_items); $stmt->execute(); $stmt->close();