summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)AuthorFilesLines
2025-08-18Coding guidelinesDamien Regad1-11/+9
2025-08-18sqlite: Fix SQLDate() methodDamien Regad2-15/+27
ADOdb date/time library was removed in #970. Follow-up PR #1002 replaced legacy adodb_date()/adodb_date2() calls through custom functions, by native strftime(). That introduced a regression in SQLDate() behavior, as the date formats changed from PHP-style to strftime (e.g. `Ymd` -> `%Y%m%d`). This commit partially reverts 4700171afa6c5f939e8d04b079331e207dea22ca and reintroduces the createFunction() call with a closure providing behavior compatible with the legacy adodb_date2() function. It also removes the now-useless test script that was added as part of PR #1002.
2025-08-18PSR cleanupMark Newnham1-40/+303
2025-08-18Changes the returned keys to lowercase if necessaryMark Newnham1-0/+13
Fixes #1090 Signed-off-by: Damien Regad <dregad@mantisbt.org> The original commit was modified to remove the change of indentation from tab to space.
2025-08-17Change casing to allow retrieval of keysMark Newnham1-3/+15
2025-08-11Added sqlite3 specific ifnull to driverMark Newnham1-0/+12
2025-08-03Merge tag 'v5.22.10'Damien Regad1-129/+78
# Conflicts: # adodb.inc.php # docs/changelog.md
2025-08-03Refactor metaForeignKeys() methodDamien Regad1-19/+17
Use a single, more advanced regex to parse the table SQL, allowing identification of foreign key definitions with a single pass, instead of several preg_split/preg_match calls. The new regex recognizes both column and table constraints, and allows composite keys too. Case conversion (when $upper parameter is true) is performed within the foreach loop that builds the return array, instead of calling array_change_key_case() at the end. Fixes #1078, #1079, #1080
2025-08-03Ignore case when matching FOREIGN keywordDamien Regad1-1/+1
Fixes metaForeignKeys() method returning nothing when FOREIGN keyword was not given in upper case. Fixes #1078
2025-08-03Code cleanupDamien Regad1-74/+54
- Fix static analysis warnings - Remove useless code - Coding guidelines
2025-08-03Execute PRAGMA to retrieve PK after getting table infoDamien Regad1-25/+7
2025-08-03Remove unnecessary where clauseDamien Regad1-2/+1
According to SQLite schema documentation, the only valid values for *type* are 'table', 'index', 'view', or 'trigger' [1] so testing for `type != 'meta'` is useless. [1]: https://sqlite.org/schematab.html#interpretation_of_the_schema_table
2025-08-03Remove unnecessary subquery in metaForeignKeys()Damien Regad1-4/+1
2025-08-03Prevent SQL injection in sqlite3 driverDamien Regad1-22/+15
Use query parameters instead of injecting the table name in the SQL, in the following methods: - metaColumns() - metaForeignKeys() - metaIndexes() Thanks to Marco Nappi (@mrcnpp) for reporting this vulnerability. Fixes #1083, CVE-2025-54119, GHSA-vf2r-cxg9-p7rf
2025-05-01Merge tag 'v5.22.9'Damien Regad1-4/+6
ADOdb version 5.22.9 released 2025-05-01 # Conflicts: # adodb-active-record.inc.php # adodb-active-recordx.inc.php # adodb.inc.php # docs/changelog.md # drivers/adodb-postgres64.inc.php
2025-05-01Mark pg_insert_id() as deprecatedDamien Regad1-0/+1
This function does the same thing as ADODB_postgres8::_insertID(), in a more limited way. There is no reason to keep it around. Fixes #1069
2025-05-01PHPDocDamien Regad1-2/+10
2025-05-01Fix SQL injection in pg_insert_id()Damien Regad1-1/+2
Properly escape the $tablename and $fieldname parameters used to build the sequence name.
2025-03-22Merge branch 'hotfix/5.22'Damien Regad1-7/+13
# Conflicts: # adodb.inc.php # docs/changelog.md
2025-03-22Fix SQLite error reportingraspopov1-7/+13
Without debug flag, the library returns '0' instead of error messages and correct SQLite error codes. Fixes #1061, PR #1062
2025-01-25Merge tag 'v5.22.8'Damien Regad2-14/+72
ADOdb version 5.22.8 released 2025-01-25 # Conflicts: # adodb.inc.php # docs/changelog.md # drivers/adodb-postgres64.inc.php
2025-01-25mysqli: Improve setConnectionParameterlook-was-here1-8/+60
- Simplify control statements with single if expressions. - Updated phpdoc with additional details on how to set connection property values. - Removed to-do that seemed wrong since the user should use setConnectionParameter for those or set the property directly. - Allow setting of ssl cert property values, clientFlags, port, and socket using the standard setConnectionParameter functionality. Feedback updates: - Return false for special cases with type checks on sslsert, socket, clientflags, or port fail - Added invalid connection param to output. - Simplified isset checks. - Changed sslcert to ssl and simplified subkeys to ('key', 'cert', 'ca', 'capath', 'cipher'). - Removed code duplication. - is_numeric should be checking value not parameter Fixes #1044
2025-01-25mysql: SSL not working due to wrong socket/flagslook-was-here1-2/+7
- Remove inappropriate setting of socket. - Updated to use appropriate bitwise operations to check for set SSL client flags and update the default to not overwrite set user flags. - Add friendly error to let user know they need to add a SSL client flag when using certificates. Fixes #919, #1043 Signed-off-by: Damien Regad <dregad@mantisbt.org>
2025-01-25pgsql: fix serverInfo() version numberDamien Regad1-6/+5
In ADOdb versions < 5.21.0-beta.1, serverInfo()['version'] returned just the version number (e.g. `15.10`), which was extracted from the version string using ADOConnection::_findVers(). Commit f2b88e063d61b12a1df9090b8d0c68831ed0f447 removed the _findVers() call, so serverInfo() could potentially return additional information depending on the actual value returned by pg_version() (e.g. `15.10 (Debian 15.10-0+deb12u1)`. This could cause subsequent version comparisons to fail, e.g. in metaTables(). Fixes #1059
2024-12-23Fix typosAndreas Deininger7-11/+11
2024-12-15Merge branch 'hotfix/5.22'Damien Regad2-18/+43
# Conflicts: # adodb-datadict.inc.php
2024-08-28Fixing DB2 *LOCAL connectionCalvin Buckley1-9/+4
Per https://github.com/ADOdb/ADOdb/pull/1034#issuecomment-2136155259 Signed-off-by: Damien Regad <dregad@mantisbt.org> Fixed conflict resolution when applying patch.
2024-08-28move local schema outside of debug blockMark Newnham1-2/+5
2024-08-28Added SCHEMA to *LOCALMark Newnham1-8/+6
2024-08-28Added SET SCHEMA supportMark Newnham1-0/+8
2024-08-28Handle connection re-use using *LOCALMark Newnham1-13/+36
2024-05-26oci8: fix warning in qStr() with NULL on PHP 8.1Damien Regad1-5/+2
This is a follow-up commit on 1501ccd07868d626a51802d14ed41ed05a3532ad, as the original fix for #999 (see PR #1005) did not fully address the problem. Another PHP deprecated warning is thrown: strlen(): Passing null to parameter 1 ($string) of type string is deprecated. Fixes #1012 Backported from commit 8d88183538ae08b86c30af5b0f3280c2accd71c3.
2024-05-26Reset fetch mode before return from MetaColumns()Damien Regad1-5/+3
Commit 249b7fb08569ce576cd1bf26098e00701145c6ec (PR #1017) introduced a regression caused by returning from the function without resetting $ADODB_FETCH_MODE to its original value. Fixes #1016
2024-05-26Fixes per code reviewMark Newnham1-11/+7
2024-05-26Fix static analysis warningsDamien Regad1-1/+6
- remove unused variable - ignore changed method parameter name - add missing break statements in switch
2024-05-26Whitespace, coding guidelinesDamien Regad1-170/+145
2024-05-26PHPDoc fixes and improvementsDamien Regad1-16/+17
2024-05-26Update of LDAP DriverMark Newnham1-126/+302
- Now supports all ADOdb methods - Honors ADODB_ASSOC_CASE - Honors ADODB_FETCH_MODE - Supports setConnectionParameter()
2024-04-30Merge branch 'hotfix/5.22'Damien Regad1-0/+23
2024-04-30MySQL: allow forcing emulated prepared statementsPaweł Kudzia1-0/+23
ADOdb 5.22.0 introduced use of bound variables and prepared statements, which broke compatibility with Manticore Search and ClickHouse. Adding $doNotUseBoundVariables property, allowing to revert to emulated prepared statements, used in ADODb until v5.21. Fixes #1028, PR #1029 Co-authored-by: Damien Regad <dregad@mantisbt.org> Reworded and formatted PHPDoc block, fixed coding guidelines.
2024-03-22Merge branch 'hotfix/5.22'Damien Regad1-1/+1
2024-03-22ldap: PHP 8.2 error when $LDAP_CONNECT_OPTIONS not setDamien Regad1-1/+1
Calling connect() method When the $LDAP_CONNECT_OPTIONS global variable is not set results in PHP Fatal error: Uncaught TypeError: count(): Argument 1 ($value) must be of type Countable|array, null given. Replacing count()>0 by !empty() to avoid the problem. Fixes #1009
2024-01-12Fix static analysis warningsDamien Regad1-36/+44
2024-01-11Merge branch 'hotfix/5.22'Damien Regad1-0/+4
Signed-off-by: Damien Regad <dregad@mantisbt.org> # Conflicts: # adodb.inc.php # docs/changelog.md
2024-01-10Catch getAssoc() execution error in metaColumns()Jessie den Ridder1-0/+4
When getAssoc() returns false, metaColumns() throws PHP Fatal error on array_change_key_case, bool given instead of array. We now check that getAssoc() completed successfully before continuing, and abort if not. Fixes #1016 Signed-off-by: Damien Regad <dregad@mantisbt.org>
2023-11-18oci8: fix warning in qStr() with NULL on PHP 8.1Damien Regad1-5/+2
This is a follow-up commit on 1501ccd07868d626a51802d14ed41ed05a3532ad, as the original fix for #999 (see PR #1005) did not fully address the problem. Another PHP deprecated warning is thrown: strlen(): Passing null to parameter 1 ($string) of type string is deprecated. Fixes #1012
2023-11-04Merge tag 'v5.22.7'Damien Regad1-1/+1
# Conflicts: # adodb.inc.php # docs/changelog.md
2023-11-04oci8: Fix Automatic conversion of false to arrayDamien Regad1-1/+1
On PHP 8.1, when the _query() method is called, the oci8 driver throws Automatic conversion of false to array is deprecated. Fixes #998
2023-11-04PDO oci: wrong max_length when precision > 0Damien Regad1-2/+4
When metaColumns() is called for a table having a NUMBER column with a non-zero scale (e.g. NUMBER(8,2)), the PDO oci driver incorrectly sets the ADOFieldObject's max_length to the column's length instead of its precision. Align handling of number fields in ADODB_pdo_oci::metaColumns() to match the oci8 driver's correct behavior. Fixes #1007
2023-11-04Remove unused ADORecordSet_ext_oci8 classDamien Regad1-8/+0
This legacy class is a leftover of the old ADOdb extension, which should have been removed as part of 376249c45f9e51e327ab0af22e9bfc9918abc0b4 (see #270).