首页 > 解决方案 > 我无法提取数据库中的 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;

}

我的错误代码

标签: phppostget

解决方案


首先,我的安全方面需要让您知道,如果您要使用$_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变量进行清理或转义。我建议您查看此链接以获取有关如何安全执行此操作的信息。


推荐阅读