首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP PDO返回单行

PHP PDO返回单行
EN

Stack Overflow用户
提问于 2011-03-28 16:53:29
回答 7查看 272.9K关注 0票数 130

更新2:

那么这就是它能得到的最优化的结果了吗?

代码语言:javascript
复制
$DBH = new PDO( "connection string goes here" );

$STH = $DBH -> prepare( "select figure from table1" );

$STH -> execute();

$result = $STH -> fetch();

echo $result ["figure"];

$DBH = null;

更新1:

我知道我可以向sql查询添加限制,但我也想摆脱foreach循环,这是我不需要的。

原始问题:

我有下面的脚本,因为有了"foreach“部分,所以可以很好地从数据库中返回许多行。

如果我知道我总是只从数据库中得到1行,我该如何优化它呢?如果我知道我只能从数据库中获得1行,我不明白为什么我需要foreach循环,但我不知道如何更改代码。

代码语言:javascript
复制
$DBH = new PDO( "connection string goes here" );

$STH = $DBH -> prepare( "select figure from table1" );

$STH -> execute();

$result = $STH -> fetchAll();

foreach( $result as $row ) {
    echo $row["figure"];
}

$DBH = null;
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-03-28 16:56:38

就去拿吧。仅获取一行。因此不需要foreach循环:D

代码语言:javascript
复制
$row  = $STH -> fetch();

示例(ty northkildonan):

代码语言:javascript
复制
$id = 4;
$stmt = $dbh->prepare("SELECT name FROM mytable WHERE id=? LIMIT 1"); 
$stmt->execute([$id]); 
$row = $stmt->fetch();
票数 227
EN

Stack Overflow用户

发布于 2011-03-28 16:55:59

代码语言:javascript
复制
$DBH = new PDO( "connection string goes here" );
$STH - $DBH -> prepare( "select figure from table1 ORDER BY x LIMIT 1" );

$STH -> execute();
$result = $STH -> fetch();
echo $result ["figure"];

$DBH = null;

你可以同时使用fetch和LIMIT。LIMIT的效果是数据库只返回一个条目,因此PHP必须处理的数据非常少。使用fetch,您可以从数据库响应中获得第一个(也是唯一一个)结果条目。

您可以通过设置抓取类型来进行更多的优化,请参见http://www.php.net/manual/de/pdostatement.fetch.php。如果您仅通过列名访问它,则需要对数组进行编号。

注意ORDER子句。使用ORDER或WHERE获取所需的行。否则,您将始终获得表中的第一行。

票数 18
EN

Stack Overflow用户

发布于 2015-02-13 19:14:54

你有没有尝试:

代码语言:javascript
复制
$DBH = new PDO( "connection string goes here" );
$row = $DBH->query( "select figure from table1" )->fetch();
echo $row["figure"];
$DBH = null;
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5456626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档