gpt4 book ai didi

PHP - 使用 PDO 构建类 - 警告 : Missing argument

转载 作者:行者123 更新时间:2023-11-29 02:56:56 28 4
gpt4 key购买 nike

我有以下选择语句,我正在构建一个用户对象:

$stmt = $conn->prepare("SELECT user.User_ID, user.User_Name
FROM user");
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_CLASS| PDO::FETCH_PROPS_LATE,'User');

我在一个单独的文件中有以下类,包含在 - require "User.php"中:

class User
{
private $User_ID;
private $User_Name;

public function __construct($User_ID, $User_Name)
{
$this->User_ID = $User_ID;
$this->User_Name =$User_Name;
}

我收到以下警告和通知 -

Warning: Missing argument 1 for User::__construct()
Notice: Undefined variable: User_ID

它工作正常,但我在整理代码时打开了警告等。

我已经查看了此处的其他问题,但解决方案似乎无济于事,我认为新的一双眼睛可能会有所帮助。我的一个想法是,我应该按照文档所述在 setFetchMode() 中传递一个数组,但这似乎仍然会导致问题。

在 PDO 中创建类的正确方法是什么?

最佳答案

如果给User构造函数使用参数,则需要使用setFetchMode中的第三个参数

public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )

在你的情况下

$stmt->setFetchMode(PDO::FETCH_CLASS| PDO::FETCH_PROPS_LATE,'User',
array('User_ID','User_name'));

或者只是为构造函数提供默认值。

参见 the reference .

关于PHP - 使用 PDO 构建类 - 警告 : Missing argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29805097/

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