gpt4 book ai didi

php - 如果我在 DEFAULT_FETCH_MODE 连接中设置为默认值,是否需要使用 PDO::FETCH_ASSOC?

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

我想知道每次将其设置为默认 ATTR_DEFAULT_FETCH_MODE 时是否需要使用 PDO::FETCH_ASSOC

这是我的连接:

$host = 'localhost';
$db = 'test';
$user = 'root';
$pass = '';
$port = '3308';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;port=$port;charset=$charset";
$options = [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
\PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}

以及使用 fetch 的示例查询:

$stmt = $pdo->prepare('SELECT * FROM users');
$stmt->execute();
$user = $stmt->fetch();

$user = $stmt->fetchAll();

不用写 $user = $stmt->fetchAll(PDO::FETCH_ASSOC); 就够了吗

最佳答案

默认获取样式为 fetch()fetchAll()PDO::ATTR_DEFAULT_FETCH_MODE(默认为 PDO::FETCH_BOTH)。

您在连接设置中设置的 PDO::ATTR_DEFAULT_FETCH_MODE 会覆盖 PDO::FETCH_BOTH

因此,基本上您不需要在每个查询中指定获取样式。 $user = $stmt->fetch();$user = $stmt->fetchAll(); 对于您的情况应该足够了。

关于php - 如果我在 DEFAULT_FETCH_MODE 连接中设置为默认值,是否需要使用 PDO::FETCH_ASSOC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59556811/

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