gpt4 book ai didi

php - 如何不使用 set 作为 ID,但需要它作为对象的构造函数

转载 作者:行者123 更新时间:2023-11-29 11:09:36 25 4
gpt4 key购买 nike

我正在尝试创建一个项目,其中我有一个带有 Mysql 的数据库,并且我正在从中添加和更新/删除数据。

问题是,我不应该使用 ID 集,因为当我将 INSERT 插入数据库时​​,我正在使用 AUTO_INCRMENT。

因此,当我从 de DB 取回数据时,我将其转换为对象数组,但我不知道如何在不使用 setId() 的情况下执行此操作。好吧,也许通过代码你会更明白我想说的。

这就是我将 INSERT 发送到数据库的方式(此代码位于 Controller ):

// prepare and bind
$stmt = $conn->prepare("INSERT INTO db_musics (name, band, dateBirth, type)
VALUES (?, ?, ?, ?)");
$stmt->bind_param("sssi", $name, $band, $dateBirth, $type);

然后是将返回的数组从数据库转换为适当的对象的问题(这是获取数据库的函数代码的一部分):

while($row = mysqli_fetch_assoc($result)) {
switch ($row["type"]) {
case 1: #Vocalist
$ms = new Vocalist($row["id"],$row["name"],$row["band"],$row["dateBirth"]);
break;
case 2: #Guitarist
$ms = new Guitarist($row["id"],$row["name"],$row["band"],$row["dateBirth"]);
break;
case 3: #Drummer
$ms = new Drummer($row["id"],$row["name"],$row["band"],$row["dateBirth"]);
break;
default:
$ret[1] = 3; #Estat de l'operacio, error al array
return $ret;
break;
}
array_push($arrayMusicsObjectes, $ms); #Inserir cada music al array
}

真正的问题来了,构造函数:

<?php
require_once(__DIR__.'/MusicAbstract.php');

class Drummer extends MusicAbstract{

public function getInstrument(){
return 'Drum';
}

public function __construct($id, $name, $band, $dateBirth){
$this->getId();
$this->setName($name);
$this->setBand($band);
$this->setDateBirth($dateBirth);
}
}

因此,在构造函数中,我得到了 $id,但如何将其放入对象中?

希望我已经正确解释了自己(英语不是我的母语)。

提前致谢! :D

最佳答案

为什么要尝试在构造函数中使用 getId() 而不是设置它?

$this->getId();

不应该替换为$this->setId()

当然,如果您的模型中有 setId() 方法

更新

因此,如果您不需要使用 setId() 方法,只需删除此行并以这种方式附加属性即可:$this->id = $id

关于php - 如何不使用 set 作为 ID,但需要它作为对象的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com