pg_cancel_query

非同期クエリを取り消す

説明

bool pg_cancel_query(PgSql\Connection $connection)

pg_cancel_query は、 pg_send_querypg_send_query_params あるいは pg_send_execute により送信された非同期クエリを キャンセルします。pg_query により実行されたクエリを キャンセルすることはできません。

パラメータ

connection

PgSql\Connection クラスのインスタンス。

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.1.0 connection は、PgSql\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、リソース を期待していました。

例1 pg_cancel_query の例

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }
  
  $res1 = pg_get_result($dbconn);
  echo "First call to pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 has $rows1 records\n\n";
  
  // 実行中のクエリをキャンセルする。もしまだ実行中なら、2 番目のクエリが
  // 対象となるだろう。
  pg_cancel_query($dbconn);
?>

上の例の出力は以下となります。

First call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

参考

  • pg_send_query
  • pg_connection_busy