PHP PDO 返回单行

2021-12-26 00:00:00 php pdo

更新 2:

那么这是可以得到的最优化的吗?

So is this the most optimized it can get?

$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 循环.

I know I can add limit to the sql query, but I also want to get rid of the foreach loop, which I should not need.

原始问题:

我有以下脚本,由于foreach"部分,它非常适合从数据库中返回许多行.

I have the following script which is good IMO for returning many rows from the database because of the "foreach" section.

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

How do I optimize this, if I know I will always only get 1 row from the database. If I know I will only ever get 1 row from the database, I don't see why I need the foreach loop, but I don't know how to change the code.

$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;

推荐答案

随便取.只得到一排.所以不需要 foreach 循环 :D

Just fetch. only gets one row. So no foreach loop needed :D

$row  = $STH -> fetch();

示例(ty northkildonan):

example (ty northkildonan):

$id = 4;
$stmt = $dbh->prepare("SELECT name FROM mytable WHERE id=? LIMIT 1"); 
$stmt->execute([$id]); 
$row = $stmt->fetch();

相关文章