gpt4 book ai didi

php - 有没有办法同时使用 PDO::FETCH_ASSOC 和 PDO::FETCH_OBJ?

转载 作者:行者123 更新时间:2023-11-29 05:15:38 27 4
gpt4 key购买 nike

使用 PDO 可以同时以两种不同的方式显示数据库中的记录吗?我的意思是我想同时将记录作为对象和数组回显。

我尝试使用 $db_conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_BOTH); 但它不起作用。我得到这个错误,我知道它是什么意思:Notice: Trying to get property of non-object

我也是这样设置的,结果是一样的:

$db_conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

$db_conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

当我尝试从我使用的数据库中获取数据时:

$db_conn = new PDO('mysql:host=localhost;dbname=test;charset=utf8', $db_user, $db_pass, array(
PDO::ATTR_PERSISTENT => true
));
$sql = $db_conn->prepare('SELECT * FROM table_name');
$sql->execute();
$all_data = $sql->fetchAll();
foreach($all_data as $row){
echo $row->col1;
echo $row['col1'];
}

最佳答案

您可以定义一个实现 ArrayAccess 的类接口(interface),因此可以使用数组语法访问属性。然后你可以这样做:

$db_conn->setFetchMode(PDO::FETCH_CLASS, 'YourClass');

上面的文档链接有一个简单类定义的示例。

关于php - 有没有办法同时使用 PDO::FETCH_ASSOC 和 PDO::FETCH_OBJ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33299591/

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