【问题标题】:How can I get the number of rows after executing a mysqli statement? [duplicate]执行mysqli语句后如何获取行数? [复制]
【发布时间】:2020-03-11 12:25:29
【问题描述】:

我想在会话变量中存储返回语句的行数,但我不知道如何。我正在尝试这样做,但它不起作用。

$stmt = $con->prepare("SELECT model, type, color FROM item WHERE model LIKE '%$type%'");


$stmt->execute();


$_SESSION['numRows'] = $stmt->num_rows;
echo $_SESSION['numRows'];

$result = $stmt->get_result();

$_SESSION['itemsInfo'] = $result->fetch_all();

【问题讨论】:

  • 为什么不只计算你获取的数据数组呢?另外,您使用的是什么库? PDO? mysqli?而且您缺少声明中的引用-不确定是在代码中还是在此处^^
  • 我正在使用 Mysqli,是的,缺少的报价仅在这里。顺便说一句,谢谢,我认为这很有效
  • awesome :D 我认为这是一个骗局,所以可能会被关闭,但你会在那里找到一个很好的答案:)

标签: php session mysqli row


【解决方案1】:

我已经解决了这个问题,它的工作原理是这样的:

$stmt = $con->prepare("SELECT model, type, color FROM item WHERE model LIKE '%$type%'");


$stmt->execute();

$result = $stmt->get_result();

$_SESSION['itemsInfo'] = $result->fetch_all();
$_SESSION['numRows'] = count($_SESSION['itemsInfo']);
echo $_SESSION['numRows'];

【讨论】:

  • 好的,但是您正在获取数组的项目数。该数组包含所有结果。恕我直言是一种解决方法。
  • @sensorario 无论如何返回数据的方式 oO 与其说是一种解决方法,不如说它更像是一个....您可能应该拥有具有该属性的数据库对象(至少 IMO :p)
  • @sensorario 那又怎样?计算所有结果是个问题。
  • 你没有正确使用准备好的语句!
猜你喜欢
  • 1970-01-01
  • 2014-02-20
  • 2013-04-09
  • 2019-09-16
  • 2016-03-11
  • 2020-04-11
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
相关资源
最近更新 更多