PHP82 Compatibility - sebiboga/testlink-upgraded GitHub Wiki
PHP 8.2.4 Compatibility
Issue #166
Support for PHP 8.2.4+ with native MySQL driver (mysqlnd).
Problem
PHP 8.2.4 changed the default MySQL driver requirements. The application needs to detect and use mysqlnd (native MySQL driver) instead of older extensions.
Solution
Database Type Support
Added support for mysqlnd database type:
case 'mysql':
case 'mysqli':
case 'mysqlnd': // PHP 8.2.4+ driver
Version Detection
if( version_compare(phpversion(), "8.2.0", ">=") ) {
$mysqlExt = 'mysqlnd';
}
What is mysqlnd?
- mysqlnd = MySQL Native Driver
- Default driver for PHP 7.0+
- Required for PHP 8.2.4+ compatibility
- Better performance than legacy extensions
- Fully supported in modern MySQL versions
Installation Files Updated
install/installUtils.php- Database type detectionlib/functions/configCheck.php- Extension validation
Verification
Check which driver is being used:
phpinfo();
// Look for: "MySQL Support => enabled"
// "Client API library version => mysqlnd x.x.x"
Benefits
✅ Works with latest PHP 8.2.4+
✅ Uses modern native driver
✅ Better performance
✅ Future-proof setup
Compatibility Matrix
| PHP | Driver | Status |
|---|---|---|
| 7.0-7.3 | mysqli | ✅ |
| 7.4+ | mysqli | ✅ |
| 8.0+ | mysqli | ✅ |
| 8.2.4+ | mysqlnd | ✅ |
Related
- PHP81-Compatibility - PHP 8.1+ support
- Developer-Guide - Installation guide
Status: ✅ Resolved
Issue: #166