从MySql数据库中获取值/行

时间:2014-11-15 13:43:23

标签: php mysql

      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对象方法的建议列表中!但是当我写这篇文章时,执行没有任何问题!

2 个答案:

答案 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值。

您正在使用mySQLiPDO有一种直接检索列的方法:

所以我建议使用fetchColumn

if ($result->rowCount() > 0) 
{
    echo $result->fetchColumn();
}