Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79664: PDOStatement::getColumnMeta fails on empty result set
This commit is contained in:
Christoph M. Becker 2020-06-02 10:46:35 +02:00
commit 461135009c
3 changed files with 37 additions and 1 deletions

4
NEWS
View file

@ -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)

View file

@ -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;

View file

@ -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)
}