首页 > 解决方案 > PHP OOP INSERT INTO 仅在数据库中插入 NULL

问题描述

我正在尝试使用 OOP 在我的数据库中添加成员,但是它只插入 NULL 值当我不使用 OOP 时它工作得非常好

这是我的 PHP 代码:

$request = $bdd->query('SELECT id_membre, prenom, nom, ville FROM client');

class Membre {
    private $_id;
    private $_prenom;
    private $_nom;
    private $_ville;
    /*HYDRATATION*/
    public function hydrate(array $donnees) {
        foreach($donnees as $key => $value) {
            $method = 'set'.ucfirst($key);
            if (method_exists($this, $method)) {

            $this->$method($value);
        }
    }
}
public function id() { return $this->_id; }
public function prenom() { return $this->_prenom; }
public function nom() { return $this->_nom; }
public function ville() { return $this->_ville; }

public function setId($id) {
    $this->_id = $id;
}
public function setPrenom($prenom) {
    $this->_prenom = $prenom;
}
public function setNom($nom) {
    $this->_nom = $nom;
}
public function setVille($ville) {
    $this->_ville = $ville;
}
}

那部分似乎工作正常

class MembreManager {
    private $_bdd;
    public function __construct($bdd){
        $this->setBdd($bdd);
    }
    public function add(Membre $mbr) {
        $q = $this->_bdd->prepare("INSERT INTO client(prenom, nom, ville) 
        VALUES(:prenom, :nom, :ville)");

    $q->bindValue(':prenom', $mbr->prenom());
    $q->bindValue(':nom', $mbr->nom());
    $q->bindValue(':ville', $mbr->ville());
    $q->execute();
  }
}


$mbr = new Membre([
    'nom' => 'Name',
    'prenom' => 'Surname',
    'ville' => 'City',
]);

$manager = new MembreManager($bdd);

$manager->add($mbr);
   while($donnees = $request->fetch()) {
        $mbr = new Membre($donnees);
    }

仅当我在 Insert Into 中手动输入字符串时,插入值似乎才有效。

标签: mysqldatabaseoop

解决方案


推荐阅读