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

PHP/MySQLiの複数のSQLオブジェクト

    1つのMySQL接続では、一度に1つのクエリのみを操作できます。一度にさらに多くのステートメントを準備できます(これらのデータは引き続きMySQLiドライバーに保持されます)が、execute()を使用すると、ステートメントはデータベースに送信され、データベースは今後のすべてのbind_param()およびbind_result()要求が新しいステートメントを送信するまで、同じステートメント。

    同時に2つのステートメント=>DBへの2つの接続=>2つのmysqliオブジェクト。

    さらに、問題は次のような単一のクエリで解決できます:

    $stmt1 = $sql1->prepare ('SELECT o.orderid,o.date,b.product,b.price FROM orders o LEFT JOIN orderlines b ON b.orderid=o.orderid ORDER BY o.orderid');
    $stmt1->execute();
    $stmt1->bind_result($orderid,$date,$product,$price);
    $prev_order_id=false;
    while ($stmt1->fetch())
    {
        if($prev_order_id!=$orderid)
        {
            if($prev_order_id!==false)
                echo "End of order " . $prev_orderid."<br>";
            echo "Order ID: " . $orderid . " from date: " . $date . ":<br>";
        }
        if(is_null($product))
            echo "Product from order is: " . $product . " and costs " . $price . "<br>";
        $prev_order_id=$orderid;
    }
    if($prev_order_id!==false)
        echo "End of order " . $prev_orderid."<br>";
    $stmt1->close();
    $sql1->close();
    



    1. psycopg2でバイナリCOPYテーブルFROMを使用します

    2. SQLServerXML列の値をクエリするにはどうすればよいですか

    3. ボリュームを使用してドッキングされたpostgresデータベースにデータを永続化する方法

    4. &#x202a;などの奇妙な文字&#x202c; &rlm;