首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PHP中使用getter和setter方法从数据库中选择

如何在PHP中使用getter和setter方法从数据库中选择
EN

Stack Overflow用户
提问于 2019-05-30 16:50:34
回答 1查看 884关注 0票数 0

我需要使用getter和setter方法从/向数据库选择/插入数据。现在我想要实现的是从数据库中选择所有内容,并在html中回显出来,看看我是否收到了任何东西。

到目前为止,代码如下:

代码语言:javascript
运行
AI代码解释
复制
class Products extends DbConnect {

    protected $id;
    protected $sku;
    protected $name;
    protected $price;
    protected $type;
    protected $attributes;

    public function select() {
        $query = "SELECT * FROM products";
        $result = $this->connect()->query($query);

        $row = $result->fetch(PDO::FETCH_ASSOC);
        $this->id = $row['Id'];
        $this->sku = $row['SKU'];
        $this->name = $row['Name'];
        $this->price = $row['Price'];
        $this->type = $row['Type'];
        $this->attributes = $row['Attributes'];
    }

    public function getId() {
        return $this->id;
    }

    public function getSKU() {
        return $this->sku;
    }

    public function getName() {
        return $this->name;
    }

    public function getPrice() {
        return $this->price;
    }

    public function getType() {
        return $this->type;
    }

    public function getAttributes() {
        return $this->attributes;
    }

}

我不确定我下一步要做什么。我试着看看我是否能得到像这样的数据:

代码语言:javascript
运行
AI代码解释
复制
public function __construct($name) {
        $this->name = $name;
    }

$product = new Products();
echo $product->name;

它告诉我我没有传递任何参数。在打印出所选数据之前,是否需要对其执行其他操作?我对这种方法完全陌生,我真的不确定该怎么做。

EN

回答 1

Stack Overflow用户

发布于 2019-05-30 17:10:30

您的构造函数需要在类中

代码语言:javascript
运行
AI代码解释
复制
class Products extends DbConnect {

    protected $id;
    protected $sku;
    protected $name;
    protected $price;
    protected $type;
    protected $attributes;

    public function __construct($name) {
        $this->name = $name;
    }

    public function select() {
        $query = "SELECT * FROM products";
        $result = $this->connect()->query($query);

        $row = $result->fetch(PDO::FETCH_ASSOC);
        $this->id = $row['Id'];
        $this->sku = $row['SKU'];
        $this->name = $row['Name'];
        $this->price = $row['Price'];
        $this->type = $row['Type'];
        $this->attributes = $row['Attributes'];
    }

    public function getId() {
        return $this->id;
    }

    public function getSKU() {
        return $this->sku;
    }

    public function getName() {
        return $this->name;
    }

    public function getPrice() {
        return $this->price;
    }

    public function getType() {
        return $this->type;
    }

    public function getAttributes() {
        return $this->attributes;
    }

}

然后在定义新类时传递参数

代码语言:javascript
运行
AI代码解释
复制
$product = new Products("Product Name");
echo $product->name;

我建议将构造函数更改为接受数组,这样您就可以传递任意数量的参数,而顺序并不重要。

代码语言:javascript
运行
AI代码解释
复制
public function __construct(array $config = []) {
  $this->name = $config["name"];
  $this->id = $config["id"];
}

然后你可以像这样发送任意数量的参数

代码语言:javascript
运行
AI代码解释
复制
$options = [
  "name" => "ProductName",
  "id" => "ProductID"
];

$product = new Products($options);
echo "Name: ".$product->name;
echo "ID: ".$product->id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56382408

复制
相关文章
盘点JavaScript中getter()和setter()函数的使用
第一种是 数据属性。已经知道如何使用它们了。到目前为止,使用过的所有属性都是数据属性。
前端进阶者
2021/09/10
1.8K0
盘点JavaScript中getter()和setter()函数的使用
Java Getter和Setter
Author:杭州电子科技大学 2016级管理学院 工商管理 唐涛 16011324@hdu.edu.cn
用户3906512
2019/10/05
7K2
通过getter和setter方法访问和修改
2.setter方法可以执行错误检查,比如检查数据是否合乎规范,输入的age是否小于0,直接对域操作则没这种优势
用户7999227
2021/10/08
1K0
getter和setter怎么用_python setter
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/14
4100
Groovy 创建索引属性Getter和Setter方法
在Groovy中,我们可以在类中定义属性,并自动在类文件中生成这些属性的getter和setter方法。 如果我们有一个Collection类型属性,我们通常会获得此属性的get/set方法。 但是根据JavaBean规范,我们可以将Collection类型属性定义为索引属性。 这意味着我们需要一个带索引参数的额外get/set方法,因此我们可以直接在属性中设置元素的值:
白石
2019/09/18
2K0
getter与setter
getter是一个获取某个属性的值的方法,setter是一个设定某个属性的值的方法。
WindRunnerMax
2020/08/27
7680
Getter & Setter:使用还是废弃
私有变量 为什么我们要使用私有的实例变量呢? 因为我们不希望其他类直接的依赖于这些变量。而且在心血来潮时,我们还可以灵活的修改变量类型和实现。 然而,为什么程序员们都自动在对象中加入getter和setter方法,以此对外暴露私有变量,就如同这些变量是公有的一样? 存取方法 存取方法(又被称为getters和setters)是一些可以用来读写对象实例变量值的方法。 为什么使用存取方法? 在类中使用存取方法而非直接暴露属性是有理由的。 Getter和Setter使得API更加的稳定。 比如,假设类中有一个
java思维导图
2018/03/15
1.3K0
Getter & Setter:使用还是废弃
【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
创建标准的 Java 类 , 需要将成员变量设置为私有成员 , 并且为其定义 getter 和 setter 方法 ;
韩曙亮
2023/03/30
1.3K0
【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
计算属性的setter和getter
        刚才通过计算lastName和firstName获取了整个姓名,当时我们只是通过一直的data对象中属性进行合成的,这个也就是计算属性(computed)的get方法(默认),实质上还有一个set方法,我们来看一下getter和setter;
十月梦想
2018/10/09
1.3K0
Vue引发的getter和setter
看着文档研究了一下vue的双向数据绑定,打印出Vue实例下的data对象里的属性时,发现了一个有趣的事情: 它的每个属性都有两个相对应的get和set方法,我觉的这是多此一举的,于是去网上查了查Vue
李文杨
2018/03/14
1.6K0
Vue引发的getter和setter
使用lombok.jar可以在Java代码中可以省略setter、getter方法了
  作为java开发者,实体对象的Getter、Setter方法是无可避免的。假如你的实体对象包含几十甚至上百个(蛋碎…)成员变量,你的代码将会是一片Getter、Setter方法,代码量剧增。现在,有一种方案(或者说小插件)可以让你的实体类只包含成员变量,Getter、Setter方法都可以避免,会开心吗?(哈哈)
青山师
2023/05/04
1.4K0
为什么要用Getter和Setter方法,而不是公开属性
大多数字段的访问都是通过Getter和Setter方法来间接访问,为什么不直接将字段设置为公开属性Public呢?答案在于前者的未来可能性。当我在Java语言编程中开始我的职业生涯时,我就对Getter和Setter感到困惑。为什么要这么写呢?为什么不直接用Public呢?这对我来说是个奇怪的语法。
三哥
2018/12/17
2.2K1
为什么要用Getter和Setter方法,而不是公开属性
js对象属性的getter和setter
版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/article/details/53996012
空空云
2018/09/27
3.4K0
通过getter获取setter函数
放在:https://gitee.com/dromara/stream-query
阿超
2023/06/23
1780
TW洞见〡getter和setter的那些事
文章作者来自ThoughtWorks:佟达 相信每一个以Java或者C++作为编程入门语言的程序员,一定会记得一条金科玉律:字段(Filed)要声明成private,如果要读取或修改字段,就声明一些公
ThoughtWorks
2018/04/16
9400
TW洞见〡getter和setter的那些事
vue之计算属性的setter和getter
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <h2>{{fullName}}</h2> </div> <script src="../js/vue.js"></script> <script> const app = new Vue({
兮动人
2021/06/11
8890
vue之计算属性的setter和getter
python @property 设置只读属性 重写 getter setter 方法
@property广泛应用在类的定义中,可以让调用者写出简短的代码,就可以重写属性的 get 和 set 方法,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。
onety码生
2018/11/21
2.7K0
点击加载更多

相似问题

从数组中动态使用getter和Setter方法

10

如何在PHP中使用getter和setter

10

PHP getter和setter

23

setter和getter方法

30

PHP混合在getter和setter中

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档