sql >> データベース >  >> RDS >> Mysql

mysqliでクエリの結果を保存して反復します

    mysqli_stmt ::store_result ブール値を返します。ドキュメントによると、次のようになります。

    $stmt->execute();
    $stmt->store_result();
    
    $stmt->bind_result($name);
    
    while($stmt->fetch()){
        //echo $name." ";
        // try another statement
        $query = "INSERT INTO usertable ...";
        $stmt2 = $mysqli->prepare($query);
        ...
    }
    
    $stmt->free_result();
    $stmt->close();
    

    これが機能しない場合は、最初にすべての行を配列にフェッチしてから、その配列を再度ループすることができます。

    $stmt->execute();
    $stmt->bind_result($name);
    $names = array();
    while($stmt->fetch()){
        $names[] = $name;
    }
    $stmt->free_result();
    $stmt->close();
    
    foreach($names as $name) {
        $query = "INSERT INTO usertable ...";
        $stmt = $mysqli->prepare($query);
        ...
    }
    


    1. データベースはMySQLとPythonで自動的に更新されません

    2. SQL ServerでのEXP()の例

    3. Oracleでロックされた行を見つける方法

    4. MySQL今日記録したテーブルからデータを選択する方法は?