为了账号安全,请及时绑定邮箱和手机立即绑定

如果我在 DEFAULT_FETCH_MODE 连接中设置为默认值

如果我在 DEFAULT_FETCH_MODE 连接中设置为默认值

PHP
蛊毒传说 2022-07-09 16:27:07
PDO::FETCH_ASSOC我想知道每次设置为默认值时是否需要使用ATTR_DEFAULT_FETCH_MODE?这是我的连接:$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);
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

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

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

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


查看完整回答
反对 回复 2022-07-09
  • 1 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信