diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2020-06-02 10:46:35 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2020-06-02 10:47:10 +0200 |
commit | 461135009c9c5e5a5839f22aff23ee7c896fb730 (patch) | |
tree | faf3f0d33f942eee252d88f14fe3cdf10074de3d | |
parent | b26ad33001cf9612fde9c7506bf6856f63b8845c (diff) | |
parent | 63bd8f38f4b7e8ffbcbd0ea607e21041ebba2455 (diff) | |
download | php-git-461135009c9c5e5a5839f22aff23ee7c896fb730.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #79664: PDOStatement::getColumnMeta fails on empty result set
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/pdo_sqlite/sqlite_statement.c | 2 | ||||
-rw-r--r-- | ext/pdo_sqlite/tests/bug79664.phpt | 32 |
3 files changed, 37 insertions, 1 deletions
@@ -6,6 +6,10 @@ PHP NEWS . Fixed bug #79595 (zend_init_fpu() alters FPU precision). (cmb, Nikita) . Fixed bug #79650 (php-win.exe 100% cpu lockup). (cmb) +- PDO SQLite: + . Fixed bug #79664 (PDOStatement::getColumnMeta fails on empty result set). + (cmb) + - phpdbg: . Fixed bug #73926 (phpdbg will not accept input on restart execution). (cmb) . Fixed several mostly Windows related phpdbg bugs. (cmb) diff --git a/ext/pdo_sqlite/sqlite_statement.c b/ext/pdo_sqlite/sqlite_statement.c index 80bdcafd10..63f2d5d80c 100644 --- a/ext/pdo_sqlite/sqlite_statement.c +++ b/ext/pdo_sqlite/sqlite_statement.c @@ -341,7 +341,7 @@ static int pdo_sqlite_stmt_col_meta(pdo_stmt_t *stmt, zend_long colno, zval *ret if (!S->stmt) { return FAILURE; } - if(colno >= sqlite3_data_count(S->stmt)) { + if(colno >= sqlite3_column_count(S->stmt)) { /* error invalid column */ pdo_sqlite_error_stmt(stmt); return FAILURE; diff --git a/ext/pdo_sqlite/tests/bug79664.phpt b/ext/pdo_sqlite/tests/bug79664.phpt new file mode 100644 index 0000000000..072d107ba6 --- /dev/null +++ b/ext/pdo_sqlite/tests/bug79664.phpt @@ -0,0 +1,32 @@ +--TEST-- +Bug #79664 (PDOStatement::getColumnMeta fails on empty result set) +--SKIPIF-- +<?php +if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; +?> +--FILE-- +<?php +$pdo = new PDO('sqlite::memory:', null, null, [ + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, +]); +$stmt = $pdo->query('select 1 where 0'); +if ($stmt->columnCount()) { + var_dump($stmt->getColumnMeta(0)); +} +?> +--EXPECT-- +array(6) { + ["native_type"]=> + string(4) "null" + ["flags"]=> + array(0) { + } + ["name"]=> + string(1) "1" + ["len"]=> + int(4294967295) + ["precision"]=> + int(0) + ["pdo_type"]=> + int(2) +} |