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();
在你的情況下應該足夠了。
- 1 回答
- 0 關注
- 170 瀏覽
添加回答
舉報
0/150
提交
取消