删除数据库中的行


Delete row in db

我有一个按钮,点击我会得到这样的链接:///update_news.php?newsID=112&value=删除

使用此代码:

'<td style="width:50px;"> <u> <b><a href="update_news.php?newsID='.$row['newsID'].'&&'.'value=delete'.'">'.'<img src="src/img/delete.png" /></b></u></td></a>';

然后我尝试使用这个类删除一行,但它不起作用:

class Delete{
    private $db;
    public function __construct(){
        $this->db = new Connection();
        $this->db = $this->db->dbConnect();
        }
        public function Delete($title, $date, $short_description, $description){
        $newsID = $_Get['newsID'];
        $delete = $_Get['delete'];
        if(isset($delete))
        {
            $sql = "DELETE FROM `News` WHERE  newsID= :newsID";
            $stmt = $pdo->prepare($sql);
            $stmt->bindParam(':newsID', $_GET['newsID'], PDO::PARAM_INT);   
            $stmt->execute();
            echo "WORKS";
        }
        else
        {
            echo "Papapapapa";
        }
}}

我称这个类为

$object = new Delete();
$object->news($newsID, $title, $date, $short_description, $description);

如果有人愿意帮助我,谢谢你。

为什么要调用news()方法?您已将方法写入构造函数。你必须这样写一个类:

class Delete{
    private $db;
    public function __construct(){
        $this->db = new Connection();
        $this->db = $this->db->dbConnect();
    }
    public function DeleteNews($title, $date, $short_description, $description){
        $newsID = $_Get['newsID'];
        $delete = $_Get['delete'];
        if(isset($delete))
        {
            $sql = "DELETE FROM `News` WHERE  newsID= :newsID";
            $stmt = $pdo->prepare($sql);
            $stmt->bindParam(':newsID', $_GET['newsID'], PDO::PARAM_INT);
            $stmt->execute();
            echo "WORKS";
        }
        else
        {
            echo "Papapapapa";
        }
    }
}

之后调用方法DeleteNews。

$object = new Delete();
$object->DeleteNews($title, $date, $short_description, $description);

在我看来,您应该做的第一件事是重命名Delete函数,这样它就不会大写,这样就不会将它与您的类混淆。

我要尝试的第二件事是实际调用(即将重命名)delete函数,因为现在您正在调用一个名为news的函数,它要么是拼写错误,要么是我们看不到的代码。尝试$object->delete(...)而不是$object->news(...)