public function getMaxRID() {
// open a connection to database
$conn = $this->getConnection();
if ($conn->connect_error) {
die("can not connect to database");
}
$query = "SELECT MAX(RID) AS MAXRID FROM Words";
$result = $conn->query($query);
if ($result->num_rows > 0) {
echo $result->fetch_assoc()["MAXRID"];
}
}
这是我获取字段最大值的方法。在这种情况下,我们知道我们只有一行和一个字段“MAXRID”。我用这种方法得到了它,但它是推荐的方式吗? fetch_assoc()方法不在$ result对象方法的建议列表中!但是当我写这篇文章时,执行没有任何问题!
答案 0 :(得分:1)
public function getMaxRID() {
// open a connection to database
$conn = $this->getConnection();
if ($conn->connect_error) {
die("can not connect to database");
}
$query = "SELECT MAX(RID) AS MAXRID FROM Words";
$result = $conn->query($query);
if ($result->num_rows() > 0) {
echo $result->row_array()["MAXRID"]; $result->free_result(); Unset($query);
}
}
的变化:
1)总是使用num_rows()函数
2)检索一行总是使用row_array()
3)使用free_result()释放其中的内存
4)取消设置查询中使用的变量
答案 1 :(得分:1)
我想说你的方式没有太大问题,但你可以直接获取那一列,因为你只需要MAXRID
值。
您正在使用mySQLi
,PDO
有一种直接检索列的方法:
所以我建议使用fetchColumn:
if ($result->rowCount() > 0)
{
echo $result->fetchColumn();
}