1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00

Merge branch 'PHP-8.4' into PHP-8.5

* PHP-8.4:
  Fix GH-20122: getColumnMeta() for JSON-column in MySQL
This commit is contained in:
Niels Dossche
2025-10-16 22:56:17 +02:00
3 changed files with 40 additions and 0 deletions

View File

@@ -90,6 +90,7 @@ require_once 'skipifconnectfailure.inc';
// MYSQLI_TYPE_GEOMETRY => array('GEOMETRY', 'TODO add testing'),
MYSQLI_TYPE_NEWDECIMAL => array('DECIMAL', '1.1'),
MYSQLI_TYPE_BIT => array('BIT', 0),
MYSQLI_TYPE_JSON => array('JSON', '[]'),
);
foreach ($datatypes as $php_type => $datatype) {

View File

@@ -746,6 +746,12 @@ static char *type_to_name_native(int type) /* {{{ */
PDO_MYSQL_NATIVE_TYPE_NAME(DATE)
#ifdef FIELD_TYPE_NEWDATE
PDO_MYSQL_NATIVE_TYPE_NAME(NEWDATE)
#endif
#ifdef FIELD_TYPE_VECTOR
PDO_MYSQL_NATIVE_TYPE_NAME(VECTOR)
#endif
#ifdef FIELD_TYPE_JSON
PDO_MYSQL_NATIVE_TYPE_NAME(JSON)
#endif
PDO_MYSQL_NATIVE_TYPE_NAME(TIME)
PDO_MYSQL_NATIVE_TYPE_NAME(DATETIME)

View File

@@ -0,0 +1,33 @@
--TEST--
GH-20122 (getColumnMeta() for JSON-column in MySQL)
--EXTENSIONS--
pdo
pdo_mysql
--SKIPIF--
<?php
require __DIR__ . '/config.inc';
require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
PDOTest::skip();
?>
--FILE--
<?php
require __DIR__ . '/config.inc';
require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
$db = PDOTest::test_factory(__DIR__ . '/common.phpt');
$db->exec('CREATE TABLE test (bar JSON)');
$db->exec('INSERT INTO test VALUES("[]")');
$stmt = $db->query('SELECT * from test');
$meta = $stmt->getColumnMeta(0);
// Note: JSON is an alias for LONGTEXT on MariaDB!
echo $meta['native_type'], "\n";
?>
--CLEAN--
<?php
require __DIR__ . '/mysql_pdo_test.inc';
MySQLPDOTest::dropTestTable();
?>
--EXPECTF--
%r(JSON|LONGTEXT)%r