0

这是我试图以面向对象的形式编写的原始代码..

$posResult = mysql_query("SELECT MAX(position)+1 FROM todo");

        if(mysql_num_rows($posResult))
            list($position) = mysql_fetch_array($posResult);

这就是我所在的位置......我想我需要 bind_result 吗?另外,我对 mysql_fetch_array 有疑问...

if($stmt = $this->HH->Database->prepare("SELECT MAX(position)+1 FROM todo")) {
        $stmt->execute();
        $stmt->store_result();

        if($stmt->num_rows != FALSE) {
            list($position) = mysql_fetch_array($posResult);
        }
    }

有人可以建议如何纠正这个问题吗?

4

1 回答 1

1

看起来您正在转向 PDO,这很棒,它是一种更好的连接方式,但您仍在尝试使用一些mysql_*不起作用的旧命令。虽然有很多方法可以获取数据,但这是我最常用的方法:

if($stmt = $this->HH->Database->prepare("SELECT MAX(position)+1 FROM todo")) {
    $stmt->execute();

    $stmt->setFetchMode(PDO::FETCH_INTO, new yourClassName);
    foreach($stmt as $yourClassObject)
    {
        $someVar=$yourClassObject->QueryColumnName;
        // or
        $this->someProperty=$yourClassObject->QueryColumnName;
    }
    }

我通常有一个与查询结果匹配的类,所以我使用FETCH_INTO但您可以使用不同的方法,例如返回索引数组、关联数组或其他方法。

于 2012-08-08T01:08:59.960 回答