gpt4 book ai didi

php - PDOStatement::fetchAll() 期望参数 1 很长,给定字符串?

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

我有一个基本的数据库处理程序类,其中有一个使用 PDO::FETCH_ASSOC 参数返回结果集的公共(public)方法:

public function resultSet() {
$this->execute();
return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
}

但是,我已经确定我需要在一些使用情况下使用 PDO::FETCH_COLUMN,因此为了保持向后兼容性,我在我的方法中添加了一个可选参数:

public function resultSet($fetchType = "PDO::FETCH_ASSOC") {
$this->execute();
return $this->stmt->fetchAll($fetchType);
}

这导致错误而不是我预期的返回:

Warning: PDOStatement::fetchAll() expects parameter 1 to be long, string given

我知道我正在向它传递一个字符串,因为我将 $fetchType 定义为一个字符串,但我根本不知道 long 是什么,或者如何定义一个包含我首选的获取模式的可选参数。

我决定查看 PDO::fetchAll() 的文档而且我只会变得更加困惑......它期望的第一个数据类型是整数? (int $fetch_type).

所以:

  1. 我如何定义一个可选参数来接受获取类型并正确传递它?

  2. 为什么第一个接受的参数是整型数据?

最佳答案

警告说明了一切,只需将其更改为:

public function resultSet($fetchType = PDO::FETCH_ASSOC) {
$this->execute();
return $this->stmt->fetchAll($fetchType);
}

关于php - PDOStatement::fetchAll() 期望参数 1 很长,给定字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833883/

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