1
我有点迷路,试图学习OOPHP。这不是以任何方式最终确定的代码,但我只是想了解如何使用另一个对象将对象存储到数据库中。PHP使用对象将其他对象存储到数据库PDO
我读,我应该将对象转换被传递到一个数组,所以我只是强制转换,但我不想使用
class ObjectStorage {
private $myObject;
function __construct($object) {
$this->myObject = (array)$object;
}
function __get($attribute) {
return var_dump($this->$attribute);
}
public function saveVideo($conn) {
$sql = "INSERT INTO videos (`src`, `title`, `desc`, `cat_id`) VALUES (?, ?, ?, ?)";
$query = $conn->prepare($sql);
$query->execute($this->myObject);
echo "Video Saved!";
}
}
当运行能看到什么是myObject我得到这
array(4) {
["Videosrc"]=>
string(4) "Test"
["Videotitle"]=>
string(5) "Title"
["Videodesc"]=>
string(4) "Desc"
["Videocat"]=>
string(3) "Cat"
}
我想不出如何访问这些。有人能解释我错过了什么吗?
哦,我的对象有猫,而不是CAT_ID,如果我改变属性CAT_ID并添加foreach循环它会工作? –
编辑答案,你应该修改也插入查询。而你的评论似乎认为你的对象的属性如:'Videosrc'而不是'src',所以在这种情况下你必须使用第二个选项。 –
那么对象的实际属性是src,title,desc,cat,但是当我将它转换为数组时,它将类名添加到前端,因为它们受到保护。尝试访问$ object-> src不起作用。我是否需要公开这些属性,这会很糟糕,是吗?一般公共道具可能不是第一选择的 –