0

MySQL を MySQLi に変換しようとしています。そして、なぜブレーキがかかるのか理解できません

$stmt2->execute();

そしてエラーを返します:

Call to a member function execute() on a non-object

それの問題または有効な実装!?

// SQL condition "WHERE group=''" where `group` is empty (NULL)
$result = "SELECT id, name FROM table WHERE group='' ORDER BY array ASC";

if ($stmt = $mysqli->prepare($result)) {
    $stmt->execute();
    $stmt->bind_result($id, $name);

    while ($stmt->fetch()) {
        // SQL condition "WHERE group='$id'" where $id defined in $stmt->bind_result($id, $name);
        $result2 = "SELECT name FROM table WHERE group='$id' ORDER BY array ASC";

        $stmt2 = $mysqli->prepare($result2);
        //$valid_stmt2 = $stmt2 === FALSE ? false : true;

        echo $name . "\n";

        //if ($valid_stmt2) {
            // Error cased on $stmt2->execute();
            $stmt2->execute();
            $stmt2->bind_result($name2);

            while ($stmt2->fetch()) {
                echo 'related to: ' . $name2 . "\n";
            }

            $stmt2->close();
        //}
    }

    $stmt->free_result();
    $stmt->close();
}

この質問は、Possible to use multiple/nested MySQLi statement?に関連している可能性があります。残念ながら、問題の有効な例やリソースが提供されていないため、役に立ちませんでした。

更新: コメント付きの簡略化されたコード例。

4

1 に答える 1

0

あなたが最初にやった

"SELECT id, url, name FROM links WHERE group='' ORDER BY array ASC"

次に、$idto doを使用したい

"SELECT url, name FROM links WHERE group='$id' ORDER BY array ASC"

そのための結果はどのように得られますか?グループが空の文字列に等しい場合、等しくはなりません(空の文字列も同じ$id場合のみですが、それは意味がありません)。$id

于 2012-06-15T01:49:58.653 に答える