CINXE.COM
PHP: pg_transaction_status - Manual
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PHP: pg_transaction_status - Manual </title> <link rel="icon" type="image/svg+xml" sizes="any" href="https://www.php.net/favicon.svg?v=2"> <link rel="icon" type="image/png" sizes="196x196" href="https://www.php.net/favicon-196x196.png?v=2"> <link rel="icon" type="image/png" sizes="32x32" href="https://www.php.net/favicon-32x32.png?v=2"> <link rel="icon" type="image/png" sizes="16x16" href="https://www.php.net/favicon-16x16.png?v=2"> <link rel="shortcut icon" href="https://www.php.net/favicon.ico?v=2"> <link rel="search" type="application/opensearchdescription+xml" href="http://php.net/phpnetimprovedsearch.src" title="Add PHP.net search"> <link rel="alternate" type="application/atom+xml" href="https://www.php.net/releases/feed.php" title="PHP Release feed"> <link rel="alternate" type="application/atom+xml" href="https://www.php.net/feed.atom" title="PHP: Hypertext Preprocessor"> <link rel="canonical" href="https://www.php.net/manual/en/function.pg-transaction-status.php"> <link rel="shorturl" href="https://www.php.net/pg-transaction-status"> <link rel="alternate" href="https://www.php.net/pg-transaction-status" hreflang="x-default"> <link rel="contents" href="https://www.php.net/manual/en/index.php"> <link rel="index" href="https://www.php.net/manual/en/ref.pgsql.php"> <link rel="prev" href="https://www.php.net/manual/en/function.pg-trace.php"> <link rel="next" href="https://www.php.net/manual/en/function.pg-tty.php"> <link rel="alternate" href="https://www.php.net/manual/en/function.pg-transaction-status.php" hreflang="en"> <link rel="alternate" href="https://www.php.net/manual/de/function.pg-transaction-status.php" hreflang="de"> <link rel="alternate" href="https://www.php.net/manual/es/function.pg-transaction-status.php" hreflang="es"> <link rel="alternate" href="https://www.php.net/manual/fr/function.pg-transaction-status.php" hreflang="fr"> <link rel="alternate" href="https://www.php.net/manual/it/function.pg-transaction-status.php" hreflang="it"> <link rel="alternate" href="https://www.php.net/manual/ja/function.pg-transaction-status.php" hreflang="ja"> <link rel="alternate" href="https://www.php.net/manual/pt_BR/function.pg-transaction-status.php" hreflang="pt_BR"> <link rel="alternate" href="https://www.php.net/manual/ru/function.pg-transaction-status.php" hreflang="ru"> <link rel="alternate" href="https://www.php.net/manual/tr/function.pg-transaction-status.php" hreflang="tr"> <link rel="alternate" href="https://www.php.net/manual/uk/function.pg-transaction-status.php" hreflang="uk"> <link rel="alternate" href="https://www.php.net/manual/zh/function.pg-transaction-status.php" hreflang="zh"> <link rel="stylesheet" type="text/css" href="/cached.php?t=1707321815&f=/fonts/Fira/fira.css" media="screen"> <link rel="stylesheet" type="text/css" href="/cached.php?t=1707321815&f=/fonts/Font-Awesome/css/fontello.css" media="screen"> <link rel="stylesheet" type="text/css" href="/cached.php?t=1738926002&f=/styles/theme-base.css" media="screen"> <link rel="stylesheet" type="text/css" href="/cached.php?t=1730558402&f=/styles/theme-medium.css" media="screen"> <base href="https://www.php.net/manual/en/function.pg-transaction-status.php"> <meta name="Description" content="PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world." /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@official_php" /> <meta name="twitter:title" content="PHP: Hypertext Preprocessor" /> <meta name="twitter:description" content="PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world." /> <meta name="twitter:creator" content="@official_php" /> <meta name="twitter:image:src" content="https://www.php.net/images/meta-image.png" /> <meta itemprop="name" content="PHP: Hypertext Preprocessor" /> <meta itemprop="description" content="PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world." /> <meta itemprop="image" content="https://www.php.net/images/meta-image.png" /> <meta property="og:image" content="https://www.php.net/images/meta-image.png" /> <meta property="og:description" content="PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world." /> <link href="https://fosstodon.org/@php" rel="me" /> <!-- Matomo --> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(["setDoNotTrack", true]); _paq.push(["disableCookies"]); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://analytics.php.net/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '1']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code --> </head> <body class="docs "> <nav class="navbar navbar-fixed-top"> <div class="navbar__inner"> <a href="/" aria-label="PHP Home" class="navbar__brand"> <img src="/images/logos/php-logo-white.svg" aria-hidden="true" width="80" height="40" > </a> <div id="navbar__offcanvas" tabindex="-1" class="navbar__offcanvas" aria-label="Menu" > <button id="navbar__close-button" class="navbar__icon-item navbar_icon-item--visually-aligned navbar__close-button" > <svg xmlns="http://www.w3.org/2000/svg" width="24" viewBox="0 0 24 24" fill="currentColor"><path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" /></svg> </button> <ul class="navbar__nav"> <li class="navbar__item"> <a href="/downloads.php" class="navbar__link " > Downloads </a> </li> <li class="navbar__item"> <a href="/docs.php" aria-current="page" class="navbar__link navbar__link--active " > Documentation </a> </li> <li class="navbar__item"> <a href="/get-involved.php" class="navbar__link " > Get Involved </a> </li> <li class="navbar__item"> <a href="/support.php" class="navbar__link " > Help </a> </li> <li class="navbar__item"> <a href="/releases/8.4/index.php" class="navbar__link navbar__release" > <img src="/images/php8/logo_php8_4.svg" alt="PHP 8.4"> </a> </li> </ul> </div> <div class="navbar__right"> <!-- Desktop default search --> <form action="/manual-lookup.php" class="navbar__search-form" > <label for="navbar__search-input" aria-label="Search docs"> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </label> <input type="search" name="pattern" id="navbar__search-input" class="navbar__search-input" placeholder="Search docs" accesskey="s" > <input type="hidden" name="scope" value="quickref"> </form> <!-- Desktop encanced search --> <button id="navbar__search-button" class="navbar__search-button" hidden > <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> Search docs </button> <!-- Mobile default items --> <a id="navbar__search-link" href="/lookup-form.php" aria-label="Search docs" class="navbar__icon-item navbar__search-link" > <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </a> <a id="navbar__menu-link" href="/menu.php" aria-label="Menu" class="navbar__icon-item navbar_icon-item--visually-aligned navbar_menu-link" > <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" viewBox="0 0 24 24" fill="currentColor" > <path d="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" /> </svg> </a> <!-- Mobile enhanced items --> <button id="navbar__search-button-mobile" aria-label="Search docs" class="navbar__icon-item navbar__search-button-mobile" hidden > <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </button> <button id="navbar__menu-button" aria-label="Menu" class="navbar__icon-item navbar_icon-item--visually-aligned" hidden > <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" viewBox="0 0 24 24" fill="currentColor" > <path d="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" /> </svg> </button> </div> <div id="navbar__backdrop" class="navbar__backdrop" ></div> </div> <div id="flash-message"></div> </nav> <nav id="trick"><div><dl> <dt><a href='/manual/en/getting-started.php'>Getting Started</a></dt> <dd><a href='/manual/en/introduction.php'>Introduction</a></dd> <dd><a href='/manual/en/tutorial.php'>A simple tutorial</a></dd> <dt><a href='/manual/en/langref.php'>Language Reference</a></dt> <dd><a href='/manual/en/language.basic-syntax.php'>Basic syntax</a></dd> <dd><a href='/manual/en/language.types.php'>Types</a></dd> <dd><a href='/manual/en/language.variables.php'>Variables</a></dd> <dd><a href='/manual/en/language.constants.php'>Constants</a></dd> <dd><a href='/manual/en/language.expressions.php'>Expressions</a></dd> <dd><a href='/manual/en/language.operators.php'>Operators</a></dd> <dd><a href='/manual/en/language.control-structures.php'>Control Structures</a></dd> <dd><a href='/manual/en/language.functions.php'>Functions</a></dd> <dd><a href='/manual/en/language.oop5.php'>Classes and Objects</a></dd> <dd><a href='/manual/en/language.namespaces.php'>Namespaces</a></dd> <dd><a href='/manual/en/language.enumerations.php'>Enumerations</a></dd> <dd><a href='/manual/en/language.errors.php'>Errors</a></dd> <dd><a href='/manual/en/language.exceptions.php'>Exceptions</a></dd> <dd><a href='/manual/en/language.fibers.php'>Fibers</a></dd> <dd><a href='/manual/en/language.generators.php'>Generators</a></dd> <dd><a href='/manual/en/language.attributes.php'>Attributes</a></dd> <dd><a href='/manual/en/language.references.php'>References Explained</a></dd> <dd><a href='/manual/en/reserved.variables.php'>Predefined Variables</a></dd> <dd><a href='/manual/en/reserved.exceptions.php'>Predefined Exceptions</a></dd> <dd><a href='/manual/en/reserved.interfaces.php'>Predefined Interfaces and Classes</a></dd> <dd><a href='/manual/en/reserved.attributes.php'>Predefined Attributes</a></dd> <dd><a href='/manual/en/context.php'>Context options and parameters</a></dd> <dd><a href='/manual/en/wrappers.php'>Supported Protocols and Wrappers</a></dd> </dl> <dl> <dt><a href='/manual/en/security.php'>Security</a></dt> <dd><a href='/manual/en/security.intro.php'>Introduction</a></dd> <dd><a href='/manual/en/security.general.php'>General considerations</a></dd> <dd><a href='/manual/en/security.cgi-bin.php'>Installed as CGI binary</a></dd> <dd><a href='/manual/en/security.apache.php'>Installed as an Apache module</a></dd> <dd><a href='/manual/en/security.sessions.php'>Session Security</a></dd> <dd><a href='/manual/en/security.filesystem.php'>Filesystem Security</a></dd> <dd><a href='/manual/en/security.database.php'>Database Security</a></dd> <dd><a href='/manual/en/security.errors.php'>Error Reporting</a></dd> <dd><a href='/manual/en/security.variables.php'>User Submitted Data</a></dd> <dd><a href='/manual/en/security.hiding.php'>Hiding PHP</a></dd> <dd><a href='/manual/en/security.current.php'>Keeping Current</a></dd> <dt><a href='/manual/en/features.php'>Features</a></dt> <dd><a href='/manual/en/features.http-auth.php'>HTTP authentication with PHP</a></dd> <dd><a href='/manual/en/features.cookies.php'>Cookies</a></dd> <dd><a href='/manual/en/features.sessions.php'>Sessions</a></dd> <dd><a href='/manual/en/features.file-upload.php'>Handling file uploads</a></dd> <dd><a href='/manual/en/features.remote-files.php'>Using remote files</a></dd> <dd><a href='/manual/en/features.connection-handling.php'>Connection handling</a></dd> <dd><a href='/manual/en/features.persistent-connections.php'>Persistent Database Connections</a></dd> <dd><a href='/manual/en/features.commandline.php'>Command line usage</a></dd> <dd><a href='/manual/en/features.gc.php'>Garbage Collection</a></dd> <dd><a href='/manual/en/features.dtrace.php'>DTrace Dynamic Tracing</a></dd> </dl> <dl> <dt><a href='/manual/en/funcref.php'>Function Reference</a></dt> <dd><a href='/manual/en/refs.basic.php.php'>Affecting PHP's Behaviour</a></dd> <dd><a href='/manual/en/refs.utilspec.audio.php'>Audio Formats Manipulation</a></dd> <dd><a href='/manual/en/refs.remote.auth.php'>Authentication Services</a></dd> <dd><a href='/manual/en/refs.utilspec.cmdline.php'>Command Line Specific Extensions</a></dd> <dd><a href='/manual/en/refs.compression.php'>Compression and Archive Extensions</a></dd> <dd><a href='/manual/en/refs.crypto.php'>Cryptography Extensions</a></dd> <dd><a href='/manual/en/refs.database.php'>Database Extensions</a></dd> <dd><a href='/manual/en/refs.calendar.php'>Date and Time Related Extensions</a></dd> <dd><a href='/manual/en/refs.fileprocess.file.php'>File System Related Extensions</a></dd> <dd><a href='/manual/en/refs.international.php'>Human Language and Character Encoding Support</a></dd> <dd><a href='/manual/en/refs.utilspec.image.php'>Image Processing and Generation</a></dd> <dd><a href='/manual/en/refs.remote.mail.php'>Mail Related Extensions</a></dd> <dd><a href='/manual/en/refs.math.php'>Mathematical Extensions</a></dd> <dd><a href='/manual/en/refs.utilspec.nontext.php'>Non-Text MIME Output</a></dd> <dd><a href='/manual/en/refs.fileprocess.process.php'>Process Control Extensions</a></dd> <dd><a href='/manual/en/refs.basic.other.php'>Other Basic Extensions</a></dd> <dd><a href='/manual/en/refs.remote.other.php'>Other Services</a></dd> <dd><a href='/manual/en/refs.search.php'>Search Engine Extensions</a></dd> <dd><a href='/manual/en/refs.utilspec.server.php'>Server Specific Extensions</a></dd> <dd><a href='/manual/en/refs.basic.session.php'>Session Extensions</a></dd> <dd><a href='/manual/en/refs.basic.text.php'>Text Processing</a></dd> <dd><a href='/manual/en/refs.basic.vartype.php'>Variable and Type Related Extensions</a></dd> <dd><a href='/manual/en/refs.webservice.php'>Web Services</a></dd> <dd><a href='/manual/en/refs.utilspec.windows.php'>Windows Only Extensions</a></dd> <dd><a href='/manual/en/refs.xml.php'>XML Manipulation</a></dd> <dd><a href='/manual/en/refs.ui.php'>GUI Extensions</a></dd> </dl> <dl> <dt>Keyboard Shortcuts</dt><dt>?</dt> <dd>This help</dd> <dt>j</dt> <dd>Next menu item</dd> <dt>k</dt> <dd>Previous menu item</dd> <dt>g p</dt> <dd>Previous man page</dd> <dt>g n</dt> <dd>Next man page</dd> <dt>G</dt> <dd>Scroll to bottom</dd> <dt>g g</dt> <dd>Scroll to top</dd> <dt>g h</dt> <dd>Goto homepage</dd> <dt>g s</dt> <dd>Goto search<br>(current page)</dd> <dt>/</dt> <dd>Focus search box</dd> </dl></div></nav> <div id="goto"> <div class="search"> <div class="text"></div> <div class="results"><ul></ul></div> </div> </div> <div id="breadcrumbs" class="clearfix"> <div id="breadcrumbs-inner"> <div class="next"> <a href="function.pg-tty.php"> pg_tty » </a> </div> <div class="prev"> <a href="function.pg-trace.php"> « pg_trace </a> </div> <ul> <li><a href='index.php'>PHP Manual</a></li> <li><a href='funcref.php'>Function Reference</a></li> <li><a href='refs.database.php'>Database Extensions</a></li> <li><a href='refs.database.vendors.php'>Vendor Specific Database Extensions</a></li> <li><a href='book.pgsql.php'>PostgreSQL</a></li> <li><a href='ref.pgsql.php'>PostgreSQL Functions</a></li> </ul> </div> </div> <div id="layout" class="clearfix"> <section id="layout-content"> <div class="page-tools"> <div class="change-language"> <form action="/manual/change.php" method="get" id="changelang" name="changelang"> <fieldset> <label for="changelang-langs">Change language:</label> <select onchange="document.changelang.submit()" name="page" id="changelang-langs"> <option value='en/function.pg-transaction-status.php' selected="selected">English</option> <option value='de/function.pg-transaction-status.php'>German</option> <option value='es/function.pg-transaction-status.php'>Spanish</option> <option value='fr/function.pg-transaction-status.php'>French</option> <option value='it/function.pg-transaction-status.php'>Italian</option> <option value='ja/function.pg-transaction-status.php'>Japanese</option> <option value='pt_BR/function.pg-transaction-status.php'>Brazilian Portuguese</option> <option value='ru/function.pg-transaction-status.php'>Russian</option> <option value='tr/function.pg-transaction-status.php'>Turkish</option> <option value='uk/function.pg-transaction-status.php'>Ukrainian</option> <option value='zh/function.pg-transaction-status.php'>Chinese (Simplified)</option> <option value='help-translate.php'>Other</option> </select> </fieldset> </form> </div> </div><div id="function.pg-transaction-status" class="refentry"> <div class="refnamediv"> <h1 class="refname">pg_transaction_status</h1> <p class="verinfo">(PHP 5 >= 5.1.0, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">pg_transaction_status</span> — <span class="dc-title">Returns the current in-transaction status of the server</span></p> </div> <div class="refsect1 description" id="refsect1-function.pg-transaction-status-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="methodname"><strong>pg_transaction_status</strong></span>(<span class="methodparam"><span class="type"><a href="class.pgsql-connection.php" class="type PgSql\Connection">PgSql\Connection</a></span> <code class="parameter">$connection</code></span>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div> <p class="para rdfs-comment"> Returns the current in-transaction status of the server. </p> <div class="caution"><strong class="caution">Caution</strong> <p class="para"> <span class="function"><strong>pg_transaction_status()</strong></span> will give incorrect results when using a PostgreSQL 7.3 server that has the parameter <code class="literal">autocommit</code> set to off. The server-side autocommit feature has been deprecated and does not exist in later server versions. </p> </div> </div> <div class="refsect1 parameters" id="refsect1-function.pg-transaction-status-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt><code class="parameter">connection</code></dt> <dd> <p class="para">An <span class="classname"><a href="class.pgsql-connection.php" class="classname">PgSql\Connection</a></span> instance.</p> </dd> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-function.pg-transaction-status-returnvalues"> <h3 class="title">Return Values</h3> <p class="para">The status can be <strong><code><a href="pgsql.constants.php#constant.pgsql-transaction-idle">PGSQL_TRANSACTION_IDLE</a></code></strong> (currently idle), <strong><code><a href="pgsql.constants.php#constant.pgsql-transaction-active">PGSQL_TRANSACTION_ACTIVE</a></code></strong> (a command is in progress), <strong><code><a href="pgsql.constants.php#constant.pgsql-transaction-intrans">PGSQL_TRANSACTION_INTRANS</a></code></strong> (idle, in a valid transaction block), or <strong><code><a href="pgsql.constants.php#constant.pgsql-transaction-inerror">PGSQL_TRANSACTION_INERROR</a></code></strong> (idle, in a failed transaction block). <strong><code><a href="pgsql.constants.php#constant.pgsql-transaction-unknown">PGSQL_TRANSACTION_UNKNOWN</a></code></strong> is reported if the connection is bad. <strong><code><a href="pgsql.constants.php#constant.pgsql-transaction-active">PGSQL_TRANSACTION_ACTIVE</a></code></strong> is reported only when a query has been sent to the server and not yet completed. </p> </div> <div class="refsect1 changelog" id="refsect1-function.pg-transaction-status-changelog"> <h3 class="title">Changelog</h3> <table class="doctable informaltable"> <thead> <tr> <th>Version</th> <th>Description</th> </tr> </thead> <tbody class="tbody"> <tr> <td>8.1.0</td> <td> The <code class="parameter">connection</code> parameter expects an <span class="classname"><a href="class.pgsql-connection.php" class="classname">PgSql\Connection</a></span> instance now; previously, a <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> was expected. </td> </tr> </tbody> </table> </div> <div class="refsect1 examples" id="refsect1-function.pg-transaction-status-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-2041"> <p><strong>Example #1 <span class="function"><strong>pg_transaction_status()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /> $dbconn </span><span style="color: #007700">= </span><span style="color: #0000BB">pg_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"dbname=publisher"</span><span style="color: #007700">) or die(</span><span style="color: #DD0000">"Could not connect"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$stat </span><span style="color: #007700">= </span><span style="color: #0000BB">pg_transaction_status</span><span style="color: #007700">(</span><span style="color: #0000BB">$dbconn</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$stat </span><span style="color: #007700">=== </span><span style="color: #0000BB">PGSQL_TRANSACTION_UNKNOWN</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">'Connection is bad'</span><span style="color: #007700">;<br /> } else if (</span><span style="color: #0000BB">$stat </span><span style="color: #007700">=== </span><span style="color: #0000BB">PGSQL_TRANSACTION_IDLE</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">'Connection is currently idle'</span><span style="color: #007700">;<br /> } else {<br /> echo </span><span style="color: #DD0000">'Connection is in a transaction state'</span><span style="color: #007700">;<br /> } <br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> </p> </div> </div> <div class="contribute"> <h3 class="title">Found A Problem?</h3> <div> </div> <div class="edit-bug"> <a href="https://github.com/php/doc-base/blob/master/README.md" title="This will take you to our contribution guidelines on GitHub" target="_blank" rel="noopener noreferrer">Learn How To Improve This Page</a> • <a href="https://github.com/php/doc-en/blob/master/reference/pgsql/functions/pg-transaction-status.xml">Submit a Pull Request</a> • <a href="https://github.com/php/doc-en/issues/new?body=From%20manual%20page:%20https:%2F%2Fphp.net%2Ffunction.pg-transaction-status%0A%0A---">Report a Bug</a> </div> </div><section id="usernotes"> <div class="head"> <span class="action"><a href="/manual/add-note.php?sect=function.pg-transaction-status&repo=en&redirect=https://www.php.net/manual/en/function.pg-transaction-status.php">+<small>add a note</small></a></span> <h3 class="title">User Contributed Notes <span class="count">2 notes</span></h3> </div><div id="allnotes"> <div class="note" id="126528"> <div class="votes"> <div id="Vu126528"> <a href="/manual/vote-note.php?id=126528&page=function.pg-transaction-status&vote=up" title="Vote up!" class="usernotes-voteu">up</a> </div> <div id="Vd126528"> <a href="/manual/vote-note.php?id=126528&page=function.pg-transaction-status&vote=down" title="Vote down!" class="usernotes-voted">down</a> </div> <div class="tally" id="V126528" title="no votes..."> 0 </div> </div> <a href="#126528" class="name"> <strong class="user"><em>r dot grellmann at agentmulder dot de</em></strong></a><a class="genanchor" href="#126528"> ¶</a><div class="date" title="2021-10-23 02:17"><strong>3 years ago</strong></div> <div class="text" id="Hcom126528"> <div class="phpcode"><code><span class="html">After one of the asynchronous functions (pg_send_query(), pg_send_query_params()...) has been used, pg_transaction_status() will always report PGSQL_TRANSACTION_ACTIVE, no matter if a transaction was started or not.<br />Even after the first call (or all valid calls) to pg_get_result() the transaction status will stay PGSQL_TRANSACTION_ACTIVE, until either<br />- a synchronous function like pq_query() was used, or<br />- another call to pg_get_result() was made, which returns false.<br />Note: calling pg_free_result() does not change anything.<br /><br /><span class="default"><?php<br /> $conn </span><span class="keyword">= </span><span class="default">pg_connect</span><span class="keyword">(</span><span class="string">"dbname=publisher"</span><span class="keyword">) or die(</span><span class="string">"Could not connect"</span><span class="keyword">);<br /> </span><span class="default">$status </span><span class="keyword">= </span><span class="default">pg_transaction_status</span><span class="keyword">(</span><span class="default">$conn</span><span class="keyword">); </span><span class="comment">// PGSQL_TRANSACTION_IDLE<br /> </span><span class="default">pg_send_query</span><span class="keyword">(</span><span class="default">$conn</span><span class="keyword">, </span><span class="string">'SELECT 1'</span><span class="keyword">);<br /> </span><span class="default">$status </span><span class="keyword">= </span><span class="default">pg_transaction_status</span><span class="keyword">(</span><span class="default">$conn</span><span class="keyword">); </span><span class="comment">// PGSQL_TRANSACTION_ACTIVE<br /> </span><span class="default">$res </span><span class="keyword">= </span><span class="default">pg_get_result</span><span class="keyword">(</span><span class="default">$conn</span><span class="keyword">);<br /> </span><span class="default">$status </span><span class="keyword">= </span><span class="default">pg_transaction_status</span><span class="keyword">(</span><span class="default">$conn</span><span class="keyword">); </span><span class="comment">// PGSQL_TRANSACTION_ACTIVE<br /> </span><span class="default">$res </span><span class="keyword">= </span><span class="default">pg_get_result</span><span class="keyword">(</span><span class="default">$conn</span><span class="keyword">); </span><span class="comment">// false<br /> </span><span class="default">$status </span><span class="keyword">= </span><span class="default">pg_transaction_status</span><span class="keyword">(</span><span class="default">$conn</span><span class="keyword">); </span><span class="comment">// PGSQL_TRANSACTION_IDLE<br /></span><span class="default">?></span></span></code></div> </div> </div> <div class="note" id="68199"> <div class="votes"> <div id="Vu68199"> <a href="/manual/vote-note.php?id=68199&page=function.pg-transaction-status&vote=up" title="Vote up!" class="usernotes-voteu">up</a> </div> <div id="Vd68199"> <a href="/manual/vote-note.php?id=68199&page=function.pg-transaction-status&vote=down" title="Vote down!" class="usernotes-voted">down</a> </div> <div class="tally" id="V68199" title="no votes..."> 0 </div> </div> <a href="#68199" class="name"> <strong class="user"><em>btherl at yahoo dot com dot au</em></strong></a><a class="genanchor" href="#68199"> ¶</a><div class="date" title="2006-07-17 07:27"><strong>18 years ago</strong></div> <div class="text" id="Hcom68199"> <div class="phpcode"><code><span class="html">This function is implemented in C, so there's no way to mimic it in SQL for older versions of PHP. But you can mimic some of the functionality by using a wrapper which keeps track of when you begin and commit/rollback transactions.</span></code></div> </div> </div></div> <div class="foot"><a href="/manual/add-note.php?sect=function.pg-transaction-status&repo=en&redirect=https://www.php.net/manual/en/function.pg-transaction-status.php">+<small>add a note</small></a></div> </section> </section><!-- layout-content --> <aside class='layout-menu'> <ul class='parent-menu-list'> <li> <a href="ref.pgsql.php">PostgreSQL Functions</a> <ul class='child-menu-list'> <li class=""> <a href="function.pg-affected-rows.php" title="pg_​affected_​rows">pg_​affected_​rows</a> </li> <li class=""> <a href="function.pg-cancel-query.php" title="pg_​cancel_​query">pg_​cancel_​query</a> </li> <li class=""> <a href="function.pg-client-encoding.php" title="pg_​client_​encoding">pg_​client_​encoding</a> </li> <li class=""> <a href="function.pg-close.php" title="pg_​close">pg_​close</a> </li> <li class=""> <a href="function.pg-connect.php" title="pg_​connect">pg_​connect</a> </li> <li class=""> <a href="function.pg-connect-poll.php" title="pg_​connect_​poll">pg_​connect_​poll</a> </li> <li class=""> <a href="function.pg-connection-busy.php" title="pg_​connection_​busy">pg_​connection_​busy</a> </li> <li class=""> <a href="function.pg-connection-reset.php" title="pg_​connection_​reset">pg_​connection_​reset</a> </li> <li class=""> <a href="function.pg-connection-status.php" title="pg_​connection_​status">pg_​connection_​status</a> </li> <li class=""> <a href="function.pg-consume-input.php" title="pg_​consume_​input">pg_​consume_​input</a> </li> <li class=""> <a href="function.pg-convert.php" title="pg_​convert">pg_​convert</a> </li> <li class=""> <a href="function.pg-copy-from.php" title="pg_​copy_​from">pg_​copy_​from</a> </li> <li class=""> <a href="function.pg-copy-to.php" title="pg_​copy_​to">pg_​copy_​to</a> </li> <li class=""> <a href="function.pg-dbname.php" title="pg_​dbname">pg_​dbname</a> </li> <li class=""> <a href="function.pg-delete.php" title="pg_​delete">pg_​delete</a> </li> <li class=""> <a href="function.pg-end-copy.php" title="pg_​end_​copy">pg_​end_​copy</a> </li> <li class=""> <a href="function.pg-escape-bytea.php" title="pg_​escape_​bytea">pg_​escape_​bytea</a> </li> <li class=""> <a href="function.pg-escape-identifier.php" title="pg_​escape_​identifier">pg_​escape_​identifier</a> </li> <li class=""> <a href="function.pg-escape-literal.php" title="pg_​escape_​literal">pg_​escape_​literal</a> </li> <li class=""> <a href="function.pg-escape-string.php" title="pg_​escape_​string">pg_​escape_​string</a> </li> <li class=""> <a href="function.pg-execute.php" title="pg_​execute">pg_​execute</a> </li> <li class=""> <a href="function.pg-fetch-all.php" title="pg_​fetch_​all">pg_​fetch_​all</a> </li> <li class=""> <a href="function.pg-fetch-all-columns.php" title="pg_​fetch_​all_​columns">pg_​fetch_​all_​columns</a> </li> <li class=""> <a href="function.pg-fetch-array.php" title="pg_​fetch_​array">pg_​fetch_​array</a> </li> <li class=""> <a href="function.pg-fetch-assoc.php" title="pg_​fetch_​assoc">pg_​fetch_​assoc</a> </li> <li class=""> <a href="function.pg-fetch-object.php" title="pg_​fetch_​object">pg_​fetch_​object</a> </li> <li class=""> <a href="function.pg-fetch-result.php" title="pg_​fetch_​result">pg_​fetch_​result</a> </li> <li class=""> <a href="function.pg-fetch-row.php" title="pg_​fetch_​row">pg_​fetch_​row</a> </li> <li class=""> <a href="function.pg-field-is-null.php" title="pg_​field_​is_​null">pg_​field_​is_​null</a> </li> <li class=""> <a href="function.pg-field-name.php" title="pg_​field_​name">pg_​field_​name</a> </li> <li class=""> <a href="function.pg-field-num.php" title="pg_​field_​num">pg_​field_​num</a> </li> <li class=""> <a href="function.pg-field-prtlen.php" title="pg_​field_​prtlen">pg_​field_​prtlen</a> </li> <li class=""> <a href="function.pg-field-size.php" title="pg_​field_​size">pg_​field_​size</a> </li> <li class=""> <a href="function.pg-field-table.php" title="pg_​field_​table">pg_​field_​table</a> </li> <li class=""> <a href="function.pg-field-type.php" title="pg_​field_​type">pg_​field_​type</a> </li> <li class=""> <a href="function.pg-field-type-oid.php" title="pg_​field_​type_​oid">pg_​field_​type_​oid</a> </li> <li class=""> <a href="function.pg-flush.php" title="pg_​flush">pg_​flush</a> </li> <li class=""> <a href="function.pg-free-result.php" title="pg_​free_​result">pg_​free_​result</a> </li> <li class=""> <a href="function.pg-get-notify.php" title="pg_​get_​notify">pg_​get_​notify</a> </li> <li class=""> <a href="function.pg-get-pid.php" title="pg_​get_​pid">pg_​get_​pid</a> </li> <li class=""> <a href="function.pg-get-result.php" title="pg_​get_​result">pg_​get_​result</a> </li> <li class=""> <a href="function.pg-host.php" title="pg_​host">pg_​host</a> </li> <li class=""> <a href="function.pg-insert.php" title="pg_​insert">pg_​insert</a> </li> <li class=""> <a href="function.pg-last-error.php" title="pg_​last_​error">pg_​last_​error</a> </li> <li class=""> <a href="function.pg-last-notice.php" title="pg_​last_​notice">pg_​last_​notice</a> </li> <li class=""> <a href="function.pg-last-oid.php" title="pg_​last_​oid">pg_​last_​oid</a> </li> <li class=""> <a href="function.pg-lo-close.php" title="pg_​lo_​close">pg_​lo_​close</a> </li> <li class=""> <a href="function.pg-lo-create.php" title="pg_​lo_​create">pg_​lo_​create</a> </li> <li class=""> <a href="function.pg-lo-export.php" title="pg_​lo_​export">pg_​lo_​export</a> </li> <li class=""> <a href="function.pg-lo-import.php" title="pg_​lo_​import">pg_​lo_​import</a> </li> <li class=""> <a href="function.pg-lo-open.php" title="pg_​lo_​open">pg_​lo_​open</a> </li> <li class=""> <a href="function.pg-lo-read.php" title="pg_​lo_​read">pg_​lo_​read</a> </li> <li class=""> <a href="function.pg-lo-read-all.php" title="pg_​lo_​read_​all">pg_​lo_​read_​all</a> </li> <li class=""> <a href="function.pg-lo-seek.php" title="pg_​lo_​seek">pg_​lo_​seek</a> </li> <li class=""> <a href="function.pg-lo-tell.php" title="pg_​lo_​tell">pg_​lo_​tell</a> </li> <li class=""> <a href="function.pg-lo-truncate.php" title="pg_​lo_​truncate">pg_​lo_​truncate</a> </li> <li class=""> <a href="function.pg-lo-unlink.php" title="pg_​lo_​unlink">pg_​lo_​unlink</a> </li> <li class=""> <a href="function.pg-lo-write.php" title="pg_​lo_​write">pg_​lo_​write</a> </li> <li class=""> <a href="function.pg-meta-data.php" title="pg_​meta_​data">pg_​meta_​data</a> </li> <li class=""> <a href="function.pg-num-fields.php" title="pg_​num_​fields">pg_​num_​fields</a> </li> <li class=""> <a href="function.pg-num-rows.php" title="pg_​num_​rows">pg_​num_​rows</a> </li> <li class=""> <a href="function.pg-options.php" title="pg_​options">pg_​options</a> </li> <li class=""> <a href="function.pg-parameter-status.php" title="pg_​parameter_​status">pg_​parameter_​status</a> </li> <li class=""> <a href="function.pg-pconnect.php" title="pg_​pconnect">pg_​pconnect</a> </li> <li class=""> <a href="function.pg-ping.php" title="pg_​ping">pg_​ping</a> </li> <li class=""> <a href="function.pg-port.php" title="pg_​port">pg_​port</a> </li> <li class=""> <a href="function.pg-prepare.php" title="pg_​prepare">pg_​prepare</a> </li> <li class=""> <a href="function.pg-put-line.php" title="pg_​put_​line">pg_​put_​line</a> </li> <li class=""> <a href="function.pg-query.php" title="pg_​query">pg_​query</a> </li> <li class=""> <a href="function.pg-query-params.php" title="pg_​query_​params">pg_​query_​params</a> </li> <li class=""> <a href="function.pg-result-error.php" title="pg_​result_​error">pg_​result_​error</a> </li> <li class=""> <a href="function.pg-result-error-field.php" title="pg_​result_​error_​field">pg_​result_​error_​field</a> </li> <li class=""> <a href="function.pg-result-memory-size.php" title="pg_​result_​memory_​size">pg_​result_​memory_​size</a> </li> <li class=""> <a href="function.pg-result-seek.php" title="pg_​result_​seek">pg_​result_​seek</a> </li> <li class=""> <a href="function.pg-result-status.php" title="pg_​result_​status">pg_​result_​status</a> </li> <li class=""> <a href="function.pg-select.php" title="pg_​select">pg_​select</a> </li> <li class=""> <a href="function.pg-send-execute.php" title="pg_​send_​execute">pg_​send_​execute</a> </li> <li class=""> <a href="function.pg-send-prepare.php" title="pg_​send_​prepare">pg_​send_​prepare</a> </li> <li class=""> <a href="function.pg-send-query.php" title="pg_​send_​query">pg_​send_​query</a> </li> <li class=""> <a href="function.pg-send-query-params.php" title="pg_​send_​query_​params">pg_​send_​query_​params</a> </li> <li class=""> <a href="function.pg-set-chunked-rows-size.php" title="pg_​set_​chunked_​rows_​size">pg_​set_​chunked_​rows_​size</a> </li> <li class=""> <a href="function.pg-set-client-encoding.php" title="pg_​set_​client_​encoding">pg_​set_​client_​encoding</a> </li> <li class=""> <a href="function.pg-set-error-context-visibility.php" title="pg_​set_​error_​context_​visibility">pg_​set_​error_​context_​visibility</a> </li> <li class=""> <a href="function.pg-set-error-verbosity.php" title="pg_​set_​error_​verbosity">pg_​set_​error_​verbosity</a> </li> <li class=""> <a href="function.pg-socket.php" title="pg_​socket">pg_​socket</a> </li> <li class=""> <a href="function.pg-trace.php" title="pg_​trace">pg_​trace</a> </li> <li class="current"> <a href="function.pg-transaction-status.php" title="pg_​transaction_​status">pg_​transaction_​status</a> </li> <li class=""> <a href="function.pg-tty.php" title="pg_​tty">pg_​tty</a> </li> <li class=""> <a href="function.pg-unescape-bytea.php" title="pg_​unescape_​bytea">pg_​unescape_​bytea</a> </li> <li class=""> <a href="function.pg-untrace.php" title="pg_​untrace">pg_​untrace</a> </li> <li class=""> <a href="function.pg-update.php" title="pg_​update">pg_​update</a> </li> <li class=""> <a href="function.pg-version.php" title="pg_​version">pg_​version</a> </li> </ul> </li> </ul> </aside> </div><!-- layout --> <footer> <div class="container footer-content"> <div class="row-fluid"> <ul class="footmenu"> <li><a href="/manual/en/copyright.php">Copyright © 2001-2025 The PHP Documentation Group</a></li> <li><a href="/my.php">My PHP.net</a></li> <li><a href="/contact.php">Contact</a></li> <li><a href="/sites.php">Other PHP.net sites</a></li> <li><a href="/privacy.php">Privacy policy</a></li> </ul> </div> </div> </footer> <script src="/cached.php?t=1731172202&f=/js/ext/jquery-3.6.0.min.js"></script> <script src="/cached.php?t=1723177202&f=/js/ext/FuzzySearch.min.js"></script> <script src="/cached.php?t=1707321815&f=/js/ext/mousetrap.min.js"></script> <script src="/cached.php?t=1707321815&f=/js/ext/jquery.scrollTo.min.js"></script> <script src="/cached.php?t=1738028401&f=/js/search.js"></script> <script src="/cached.php?t=1738742401&f=/js/common.js"></script> <script type="module" src="/cached.php?t=1738318202&f=/js/interactive-examples.js"></script> <a id="toTop" href="javascript:;"><span id="toTopHover"></span><img width="40" height="40" alt="To Top" src="/images/to-top@2x.png"></a> <div id="search-modal__backdrop" class="search-modal__backdrop"> <div role="dialog" aria-label="Search modal" id="search-modal" class="search-modal" > <div class="search-modal__header"> <div class="search-modal__form"> <div class="search-modal__input-icon"> <!-- https://feathericons.com search --> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </div> <input type="search" id="search-modal__input" class="search-modal__input" placeholder="Search docs" aria-label="Search docs" /> </div> <button aria-label="Close" class="search-modal__close"> <!-- https://pictogrammers.com/library/mdi/icon/close/ --> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" viewBox="0 0 24 24" > <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"/> </svg> </button> </div> <div role="listbox" aria-label="Search results" id="search-modal__results" class="search-modal__results" ></div> <div class="search-modal__helper-text"> <div> <kbd>↑</kbd> and <kbd>↓</kbd> to navigate • <kbd>Enter</kbd> to select • <kbd>Esc</kbd> to close </div> <div> Press <kbd>Enter</kbd> without selection to search using Google </div> </div> </div> </div> </body> </html>