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

PHPで複数のmysqlクエリを一緒に実行する方法は?

    mysql_query() 一意のクエリを送信します(複数のクエリはサポートされていません) これがデフォルトの動作ですが、これにはバイパスがあります。

    ただし、最初のクエリの結果コードのみがmysql_query()の出力として提供されます。 これを行う場合。

    mysql_connectの5番目のパラメータとしてフラグ65536を渡す必要があります。フラグは、MySQLクライアントフラグ> 。

    #define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
    #define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */
    

    したがって、mysql_connect()を編集します これに一致するコード:

    mysql_connect($host, $username, $password, false, 65536);
    

    警告:

    1. mysql_query($query)の結果が表示されます 最初のクエリの場合のみ 指定された$query内 。 131072を連結してみてください 65536を使用 複数の結果を得るため。
    2. これはPHP<4.3.0では機能しません
    3. sql.safe_modeの場合、これは機能しません php.iniでは1に設定されています

    もう1つの方法は、mysqliを使用することです。 mysqlの代わりに 図書館。 $mysqli->multi_query()をサポートします クエリごとに配列内に出力を提供します。



    1. Neo4jブラウザ

    2. 失敗したRails移行のロールバック

    3. 最初の2列で同じ番号の組み合わせを持つ行を検出し、3番目の列で番号が最も大きい行を選択します

    4. Oracleの列に行数を渡す