Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-使用OOP向Mysql表中添加入口_Php_Oop - Fatal编程技术网

PHP-使用OOP向Mysql表中添加入口

PHP-使用OOP向Mysql表中添加入口,php,oop,Php,Oop,我想使用POO将入口(使用表单)添加到Mysql表中。 以下是我所做的: 我的班级: <?php class portfolio{ public $title; public $img_desk; public $img_tablet; public $img_phone; public $id; public function __construct($title, $img_desk, $img_tablet, $img_phone,

我想使用POO将入口(使用表单)添加到Mysql表中。 以下是我所做的: 我的班级:

<?php
class portfolio{
    public $title;
    public $img_desk;
    public $img_tablet;
    public $img_phone;
    public $id;

    public function __construct($title, $img_desk, $img_tablet, $img_phone, $port_id){
        $this->title = $title;
        $this->img_desk = $img_desk;
        $this->img_tablet = $img_tablet;
        $this->img_phone = $img_phone;
        $this->id = $port_id;
    }

    public function getPortfolio($id){
        $reponse = $bdd->query('SELECT * FROM designer WHERE id = $id');
        $portfolio = $reponse->fetch();
        $a = new portfolio($portfolio['title'], $portfolio['img_desk'], $portfolio['img_tablet'], $portfolio['phone'], $portfolio['id']);
        return $a;
    }

    public function addPortfolio($title, $img_desk, $img_tablet, $img_phone){
        $add = $bdd->exec('INSERT INTO designer(title, img_desk, img_tablet, img_phone) VALUES(:title, :img_desk, :img_tablet, :img_phone)');
        $add->execute(array(  // _> was used.!!!
            'title' => $title,
            'img_desk' => $img_desk['name'],
            'img_tablet' => $img_tablet['name'],
            'img_phone' => $img_phone['name']
            // imgs...
        ));
        if (isset($img_desk) AND $img_desk['error'] == 0){
                // Testons si le fichier n'est pas trop gros
                if ($img_desk['size'] <= 3000000)
                {
                        require("class/img.class.php");
                        // Testons si l'extension est autorisée
                        $infosfichier = pathinfo($img_desk['name']);
                        $extension_upload = $infosfichier['extension'];
                        $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                        if (in_array($extension_upload, $extensions_autorisees))
                        {
                                // On peut valider le fichier et le stocker définitivement
                                move_uploaded_file($img_desk['tmp_name'], 'img/port/' . basename($img_desk['name']));
                        }   
                }
        }
        echo 'Élement ajouté';
    }

    public function editPortfolio($old, $new){
        $edit = $bdd->prepare('UPDATE designer SET title = :title, img_desk = :img_desk, img_tablet = :img_tablet, img_phone = :img_phone WHERE id = $old->id ');
        $edit->execute(array(
            'title' => $new->title,
            'img_desk' => $new->img_desk,
            'img_tablet' => $new->img_tablet,
            'img_phone' => $new->img_phone
            ));
    }

    public function deletePortfolio($cible){
        //DELETE FROM designer WHERE id = $cible->id;
    }

    public function getAllPortfolio(){
        //$reponse = $bdd->query('SELECT * FROM designer');
        //$donnees = $reponse->fetch();
        //return $donnees;
    }
}
?>
有人能给我解释一下吗?我知道我做错了,但实际上我正在学习OOP。
提前感谢:)。

您需要先在类
公文包中创建一个对象

因此,更正后的代码应为:

//你的代码在这里

$portfolio = new portfolio;
if(isset($_POST['title'])){
  $portfolio->addPortfolio($_POST['title'], $_FILES['img_desk'], $_FILES['img_tablet'], $_FILES['phone']);
  echo 'ok';
}else{

//您可以在此处输入代码,也可以直接使用如下函数 如果函数声明为静态,但由于您有个人数据,因此不推荐使用

portfolio::addPortfolio();

首先检查您的包含文件传递是否正确。包括文件后的第二件事。您需要这样创建类的对象$xyz=新投资组合();现在,这个类中定义的所有函数都将以这种方式引用这个对象$xyz->addPortfolio($\u POST['title'],$\u文件['img\u desk'],$\u文件['img\u tablet'],$\u文件['phone']);我想这会解决你的问题。所以,是的,要学习oop,你可以阅读教程。阅读教程可能会提示您,要使用类函数,必须使用以下语法:
$class->addPortFolio()
,否则,php搜索的是函数
addPortFolio()
,而不是成员函数
portfolio::addPortFolio()
。如果这听起来像中文,请阅读教程和php手册,特别是关于OOPHHERE的伟大章节,阅读它,它回答了您的问题,如果您继续不阅读最基本的教程,您将有许多其他问题。特别是关于调用成员函数的
部分
$portfolio = new portfolio;
if(isset($_POST['title'])){
  $portfolio->addPortfolio($_POST['title'], $_FILES['img_desk'], $_FILES['img_tablet'], $_FILES['phone']);
  echo 'ok';
}else{
portfolio::addPortfolio();