mysql - 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 中手动输入字符串时,插入值似乎才有效。
解决方案
推荐阅读
- jquery-blockui - DirtyForms 不能与 $.blockUI 一起正常工作
- python - 如何将 list1 中的所有偶数附加到 list2 中?
- sql-server - AWS RDS MS SQL 无法连接
- windows - docker 上的 Windows 服务无法启动
- python-3.x - wxpython无法导入同一目录中的文件
- java - 使用默认应用打开名称中包含空格(或 &)的文件
- firebase - 无法使用 firebase.auth() 验证 IdToken
- influxdb - Telegraf [[inputs.snmp.field]] 将字符串转换为int?
- python - 为什么我在使用 pip 安装软件包时会收到 protobuff 错误?
- reactjs - 如何使用 React-Router V4 转义路径内的颜色字符 (:)?