php - 我无法提取数据库中的 id 部分
问题描述
我对php有点新,当我在视频教程中应用代码时,我看到了这样的错误,当从以下数据库中删除数据时,我无法提取“id”部分。
我的代码;
function introsil($vt){
$introid=$_GET["id"];
$verial=self::sorgum($vt,"select * from intro where id=$introid",1);
echo'<div class="row text-center">
<div class="col-lg-12">';
//delete docs
unlink("../".$verial["resimyol"]);
// delete my database
self::sorgum($vt,"delete from intro where id=$introid",0);
echo'<div class="alert alert-success mt-5 font-weight-bold">Docs delete success.<i class="ti-alert ml-2"></i></div>';
echo'</div></div>';
}
我的“高粱”功能在这里;
function sorgum($vt,$sorgu,$tercih=0){
$al=$vt->prepare($sorgu);
$al->execute();
if($tercih==1):
return $al->fetch();
elseif ($tercih==2):
return $al;
endif;
}
解决方案
首先,我的安全方面需要让您知道,如果您要使用$_GET['id']
直接进入查询,您需要对其进行清理和转义,否则您将受到SQL 注入攻击。
关于检索 ID,我倾向于建议您将其提交给函数:
function introsil($vt, $id){
$introid = $id;
$verial = self::sorgum($vt,"select * from intro where id=$introid",1);
echo '<div class="row text-center">
<div class="col-lg-12">';
//delete docs
unlink("../".$verial["resimyol"]);
// delete my database
self::sorgum($vt,"delete from intro where id=$introid",0);
echo '<div class="alert alert-success mt-5 font-weight-bold">Docs delete success.<i class="ti-alert ml-2"></i></div>';
echo '</div></div>';
}
然后可以这样调用:
<?php
introsil($vt, $_GET['id']);
在我的示例中,我没有对$id
变量进行清理或转义。我建议您查看此链接以获取有关如何安全执行此操作的信息。
推荐阅读
- node.js - 从 FTP 下载并直接将其复制到 Azure Blob/Amazon S3 中,而无需将其存储在 Node.js 中的本地系统中
- ios - SwiftUI:动态“列表”中的“切换”在重用时破坏了它们的布局?
- unit-testing - 使用 Mockito 模拟挂起函数返回 null
- c++ - 为什么这个示例 C++ 代码片段中的第一个参数是对象,而不是对象的内存地址?
- c++ - Cin 和 getline 不会正确保存非 ascii 字符
- html - 如何将图像放在容器的顶部中心
- javascript - 空字符串是有效的 JSON 键吗?
- javascript - quick.db 调平系统 - database.updateValue 不是函数
- java - 什么相当于 Flux 中 Mono 的 doOnSuccess 方法?
- c - 如何使用以下结构初始化双向链表?