程序性的php / mysql以面向对象的问题

时间:2012-08-08 00:58:49

标签: php mysql oop

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

$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);
        }
    }

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

1 个答案:

答案 0 :(得分: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但您可以使用其他方法,例如返回索引数组,关联数组或其他方法。