Skip to content

Commit 71276ac

Browse files
committed
ext/pdo_sqlite: adding PDO::SQLITE_ATTR_BUSY_STATEMENT
allow to check if a statement is still running before reusage.
1 parent e3cfa4b commit 71276ac

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

ext/pdo_sqlite/pdo_sqlite.stub.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ class Sqlite extends \PDO
3333
/** @cvalue PDO_SQLITE_ATTR_EXTENDED_RESULT_CODES */
3434
public const int ATTR_EXTENDED_RESULT_CODES = UNKNOWN;
3535

36+
/** @cvalue PDO_SQLITE_ATTR_BUSY_STATEMENT */
37+
public const int ATTR_BUSY_STATEMENT = UNKNOWN;
38+
3639
/** @cvalue SQLITE_OK */
3740
public const int OK = UNKNOWN;
3841

ext/pdo_sqlite/sqlite_statement.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,13 +375,22 @@ static int pdo_sqlite_stmt_get_attribute(pdo_stmt_t *stmt, zend_long attr, zval
375375
case PDO_SQLITE_ATTR_READONLY_STATEMENT:
376376
ZVAL_FALSE(val);
377377

378-
#if SQLITE_VERSION_NUMBER >= 3007004
378+
#if SQLITE_VERSION_NUMBER >= 3007004 // Should we still keep it ? avail. since circa 2010
379379
if (sqlite3_stmt_readonly(S->stmt)) {
380380
ZVAL_TRUE(val);
381381
}
382382
#endif
383383
break;
384384

385+
case PDO_SQLITE_ATTR_BUSY_STATEMENT:
386+
ZVAL_FALSE(val);
387+
388+
#if SQLITE_VERSION_NUMBER >= 3007004
389+
if (sqlite3_stmt_busy(S->stmt)) {
390+
ZVAL_TRUE(val);
391+
}
392+
#endif
393+
break;
385394
default:
386395
return 0;
387396
}

0 commit comments

Comments
 (0)