我在核心php应用程序中遇到了一个删除操作错误

我在核心php应用程序中遇到了一个删除操作错误,php,mysql,crud,Php,Mysql,Crud,我已经为php实践创建了一个小应用程序。我已成功创建登录和插入功能。我在dashboard.php上遇到删除功能错误 登录 用户名:admin 密码:12345 以下是dashboard.php文件的php代码: <?php include 'conntect.php'; if (isset($_GET['delete'])){ $del=$_GET['delete']; $sql="delete from partners where partne

我已经为php实践创建了一个小应用程序。我已成功创建登录和插入功能。我在dashboard.php上遇到删除功能错误

登录

用户名:admin 密码:12345

以下是dashboard.php文件的php代码:

<?php
include 'conntect.php';
    if (isset($_GET['delete'])){
        $del=$_GET['delete'];
        $sql="delete from partners where partner_id=".$del;
        mysqli_query($conn, $sql);
        header('location:dashboard.php');
    }



mysqli_close($conn);
?>
<td><a href="dashboard.php?delete='.$row["partner_id"].'" style="color:red;"><i class="far fa-window-close"></i></a></td>

单击“删除”图标时,我想从数据库中删除记录。

$sql=“从合作伙伴处删除,其中合作伙伴\u id='{$del}'

将要删除的
替换为以下代码:

<td><a href="dashboard.php?delete=<?php echo $row["partner_id"]; ?>" style="color:red;"><i class="far fa-window-close"></i></a></td>


如果进一步使用了
mysqli
,请不要关闭MySQL连接。

您需要共享“connect.php”文件的内容。出现错误的原因是因为“mysqli_query($conn,$sql)”希望参数1是(mysqli$link)或(mysqli$object)

检查此项()

面向对象风格 mysqli::query(字符串$query[,int$resultmode=mysqli\u STORE\u RESULT]):混合

程序风格 mysqli_查询(mysqli$link,string$query[,int$resultmode=mysqli_存储结果]):混合

要进行快速修复,可以将我的这段代码放在connect.php文件中

    class Connect {
      private $DB_NAME = 'db_name'; //database name
      private $DB_HOST = 'localhost'; //database host
      private $DB_USER = 'root';  //database user
      private $DB_PASS = ''; //database password
      private $QUERY_DEBUG = 'on'; //enable debug locally and disable in production

      public static $conn;
      public static $pdo_conn;
      
       /**
        constructor function
       **/
       public function __construct() {
            try{
                //initialize a static mysqli connection object or die on error
                self::$conn = new mysqli($this->DB_HOST, $this->DB_USER, $this->DB_PASS, 
                $this->DB_NAME)or 
               die('unable to select Database, Connection Error'.  mysqli_error());
              } catch (Exception $e) {
                 die('unable to select Database, Connection Error'. $e->getMessage());
              }
           /**
             //if you are using pdo, uncomment this block of code
             $pdo = "mysql:host=" . $this->DB_HOST . ";dbname=" . $this->DB_NAME;
             try{
                 self::$pdo_conn = new PDO($pdo, $this->DB_USER, $this->DB_PASS);
             }catch (Exception $e)
             {
                die('unable to select Database, Connection Error'. $e->getMessage());
             }
         **/
       }
      
      /**
        function to encapsulate your queries
      **/
      public function safeQuery($query="") 
     {
        if(empty($query)){return false;}
        if($this->QUERY_DEBUG == "off")//check query debug mode
        {
            //$result = mysqli_query(self::$conn,$query) -> procedural way
            $result = self::$conn->query($query) or 
            die("An error occured");
        }
        else
        {
            //$result = mysqli_query(self::$conn,$query) -> procedural way
            $result = self::$conn->query($query)
            or die("query falied:"."<li>ERROR_NO = ".mysqli_errno(self::$conn)." 
          <li>ERROR= ".  mysqli_error(self::$conn).$query); 
        }
        return $result;
     }
   }
类连接{
private$DB_NAME='DB_NAME';//数据库名称
private$DB_HOST='localhost';//数据库主机
private$DB_USER='root';//数据库用户
私有$DB_PASS='';//数据库密码
private$QUERY_DEBUG='on';//在本地启用调试并在生产中禁用
公共康涅狄格州;
公共静态$pdo_conn;
/**
构造函数
**/
公共函数构造(){
试一试{
//初始化静态mysqli连接对象或在出现错误时死亡
self::$conn=newmysqli($this->DB\u HOST,$this->DB\u USER,$this->DB\u PASS,
$this->DB_NAME)或
die('无法选择数据库,连接错误'.mysqli_Error());
}捕获(例外$e){
die('无法选择数据库,连接错误'$e->getMessage());
}
/**
//如果您使用的是pdo,请取消注释这段代码
$pdo=“mysql:host=”.$this->DB\u host.“dbname=”.$this->DB\u NAME;
试一试{
self::$pdo_conn=new pdo($pdo,$this->DB_USER,$this->DB_PASS);
}捕获(例外$e)
{
die('无法选择数据库,连接错误'$e->getMessage());
}
**/
}
/**
函数来封装查询
**/
公共函数safeQuery($query=”“)
{
if(空($query)){return false;}
if($this->QUERY\u DEBUG==“off”)//检查查询调试模式
{
//$result=mysqli\u查询(self::$conn$query)->过程方式
$result=self::$conn->query($query)或
死亡(“发生错误”);
}
其他的
{
//$result=mysqli\u查询(self::$conn$query)->过程方式
$result=self::$conn->query($query)
或者死(“查询失败:”
  • 错误号=“.mysqli\u错误号(self:$conn)。”
  • ERROR=“.mysqli_ERROR(self::$conn)。$query); } 返回$result; } }
  • 然后,要在代码中的任何地方使用mysqli查询,只需执行以下操作

    <?php
       include 'conntect.php';
        $conn = new Connect(); 
        //**Note** $conn exposes a static $conn property(which is a mysqli connection object
        if (isset($_GET['delete'])){
            $del=$_GET['delete'];
            $sql="delete from partners where partner_id=".$del;
            $conn->safeQuery($sql); // (Recommended) Object oriented way
            //mysqli_query($conn::$conn, $sql); // procedural way
            header('location:dashboard.php');
        }
    
    
    
    //mysqli_close($conn::$conn);
    ?>
    <td><a href="dashboard.php?delete='.$row["partner_id"].'" style="color:red;"><i class="far fa-window-close"></i></a></td>
    

    如果您不告诉我们更多有关错误的信息,那么很难为您提供帮助。什么线路?什么消息?呈现数据的表显示的
    javascript
    或前端代码在哪里;看起来像SQL注入。我会在有人删除您的数据之前修复它…PHP警告:mysqli_close()期望参数1为mysqli,在第12行的/home/thewebtree/public_html/projects/dashboard.PHP中给出空值