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 に答える