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

複数のクエリを使用したphp/mysql

    php.netのおかげで、私は解決策を考え出しました。(mysqli_multi_query($link, $query))を使用する必要があります。 複数の連結クエリを実行します。

     /* create sql connection*/
    $link = mysqli_connect("server", "user", "password", "database");
    
    $query = "SQL STATEMENTS;"; /*  first query : Notice the 2 semicolons at the end ! */
    $query .= "SQL STATEMENTS;"; /* Notice the dot before = and the 2 semicolons at the end ! */
    $query .= "SQL STATEMENTS;"; /* Notice the dot before = and the 2 semicolons at the end ! */
    $query .= "SQL STATEMENTS"; /* last query : Notice the dot before = at the end ! */
    
    /* Execute queries */
    
    if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_array($result)) 
    
    /* print your results */    
    {
    echo $row['column1'];
    echo $row['column2'];
    }
    mysqli_free_result($result);
    }   
    } while (mysqli_next_result($link));
    }
    

    編集-上記の解決策は、本当に1つの大きなクエリを実行したい場合に機能しますが、必要な数のクエリを実行して個別に実行することもできます。

    $query1 = "Create temporary table A select c1 from t1"; 
    $result1 = mysqli_query($link, $query1) or die(mysqli_error());
    
    $query2 = "select c1 from A"; 
    $result2 = mysqli_query($link, $query2) or die(mysqli_error());
    
    while($row = mysqli_fetch_array($result2)) {
    
    echo $row['c1'];
        }  
    


    1. Oracleパッケージが無効になる状況は何ですか?

    2. Nvarchar(Max)の場合、TSQLで4000文字しか取得できませんか?

    3. 異種データ型の3つのフィールドの複数列インデックス

    4. このエラーを修正するにはどうすればよいですか:サポートされていないSQL92?