用php从mysql max()语句中读取单个值

8nuwlpux  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(257)

我想读出表中列的最大值。我试着用max()这样做:

$stmt = $conn->prepare("SELECT MAX(msgconv) FROM msg");

if ( false===$stmt ) {
  die('prepare() failed: ' . htmlspecialchars($conn->error));
}

$stmt->execute();

$conv_highest = $stmt->get_result();

echo $conv_highest;

$stmt->close();

我试过了 fetch_assoc(); 我也是,但我不知道´我的php变量中没有任何值。
编辑:

$row = $conv_highest->fetch_assoc();
echo $row['msgconv'];

可悲的是,那没有´也不行。有人能帮帮我吗?

rks48beu

rks48beu1#

你的编辑已经把你带到了那里。它不起作用的原因是没有调用表中的字段 msgconv ; 您已选择 MAX(msgconv) 在您的查询中 $row 你要找的是 $row['MAX(msgconv)'] . 所以你有一些选择,你可以

$row = $conv_highest->fetch_assoc();
echo $row['MAX(msgconv)'];

或者您可以将查询更改为:

$stmt = $conn->prepare("SELECT MAX(msgconv) AS msgconv FROM msg");
// ...
$row = $conv_highest->fetch_assoc();
echo $row['msgconv'];

或者您可以保持查询的原样并获取一个数字数组,例如。

$row = $conv_highest->fetch_row();
echo $row[0];
yrdbyhpb

yrdbyhpb2#

通常在php中,你不能回显一个对象或数组,方法get\u result会返回一个结果集,因此你必须迭代或打开对象并获取其中的值。有关详细信息,请参阅此链接。试着把$conv\u最高放在一个print\r中,它可以帮助你查看对象的内部,例如print\r($conv\u最高)。解决方案可能是这样的

SELECT MAX(msgconv) as maximum FROM msg
      while ($row = $conv_highest->fetch_assoc()) {
        echo 'Highest: '.$row['maximum'].'<br>';
   }

相关问题