PHP PDO中fetch的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP PDO中fetch的问题相关的知识,希望对你有一定的参考价值。
<?php
$pdo=new PDO("mysql:host=localhost;dbname=test","root","");
$rs=$pdo->query("select * from message");
$array=$rs->fetchall();
print_r($rs);
?>
输出结果是:
Array ( [0] => Array ( [id] => 1 [0] => 1 [user] => f [1] => f [title] => f [2] => f [content] => s [3] => s [lastdate] => 0000-00-00 [4] => 0000-00-00 )
请问各位我不想看到结果的索引,只想看到id,user,title等字段的值应该怎样实现呢?
$rs->setFetchMode(PDO::FETCH_ASSOC); //设置关联模式
然后再$rs->fetchAll
即可得到字段->值的关联形式 参考技术A 最后使用PDO连接MYSQL是自动关闭数据库吗?如果不是应该怎么关闭? $zx是一个object对象 用$zx- 参考技术B 二楼说的应该可以
PDO::FETCH_OBJ php
【中文标题】PDO::FETCH_OBJ php【英文标题】: 【发布时间】:2021-12-09 19:14:07 【问题描述】:PDO::FETCH_OBJ -> 返回一个匿名对象,其属性名称对应于结果集中返回的列名称。 例如:
Array ( [0] => stdClass Object ( [id] => 3 [email] => frank@frank.com [password] => password [salt] => salt [devices] => 1 [accounttype] => 1 [accountcreated] => 2014-03-26 [confirmed] => 1 [confirmcode] => 0 [logindate] => 2014-03-26 ) )
我如何获得电子邮件值???????以下是我目前所拥有的
$_db = DB::getInstance();
$_db = $_db->query('SELECT * FROM users WHERE email = ? AND password = ? ', array($email, $pass));
$results = $_db->results();
print_r($results);
print_r($results->email); <<<<<<<<<<<--- does not work!
请帮助这 24 小时......我知道这很简单,因为我以前做过......只是似乎不记得找到任何参考代码!
【问题讨论】:
应该是$results[0]->email
或foreach($results as $result) echo $result->email
【参考方案1】:
您可以在粘贴的内容中看到 $results 是一个对象数组,因此您需要指定数组中的哪个项目以获得正确的电子邮件结果。
例子:
print_r($results[0]->email);
【讨论】:
【参考方案2】:你应该使用类似下面的东西:
foreach ($results as $row)
print_r($row->email);
如果您希望只返回一行,最好检查一下。您可以将 count() 与 $results 变量一起使用,如下所示:
if (count($results)==1)
print_r($results[0]->email);
【讨论】:
以上是关于PHP PDO中fetch的问题的主要内容,如果未能解决你的问题,请参考以下文章
PHP PDO fetch 和 foreach - 我没有得到第一列