Commit graph

303 commits

Author SHA1 Message Date
Nikita Popov
9e3ba775b7 Fixed bug #72368
Generate a param count mismatch error even if the query contains
no placeholders.

Additionally we shouldn't HANDLE errors from pdo_parse_params,
which are always reported via raise_impl_error. Doing so results
in duplicate error messages.
2020-12-10 16:53:08 +01:00
Nikita Popov
9c0712d2cd Make XFAILED test less broken
At least allow it to print some output rather than throw right
away...
2020-12-09 10:42:44 +01:00
Dharman
53f7bddbeb Fix typos in mysql tests
%d because of line endings on Windows
2020-12-03 10:42:39 +01:00
Nikita Popov
74fe9170b6 Check PDOStatement initialization during iteration 2020-10-19 10:22:56 +02:00
Nikita Popov
0f3698173e Update PDO parameter names
Followup to previous changes:
 * Use camel case, as PDO uses a camel case OO API.
 * Use &$var instead of &$bind_var or &$param.
 * Use $column instead of $index. We have cases (both inside PDO
   and in other DB exts) where columns can also be represented as
   strings, so $column is the safer generic name.

Closes GH-6272.
2020-10-05 15:51:36 +02:00
George Peter Banyard
a5cf82802d Make various failure conditions in PDO unconditional errors
This includes TypeErrors, ValueErrors, Error for uninitialized objects
and invalid user classes/callable instanciation

Closes GH-6212
2020-09-28 18:51:36 +01:00
Nikita Popov
5bb41fa63c Promote PDORow property write to Error 2020-09-21 15:33:39 +02:00
Nikita Popov
c5401854fc Run tidy
This should fix most of the remaining issues with tabs and spaces
being mixed in tests.
2020-09-18 14:28:32 +02:00
Christopher Jones
bc508b0b88 Skip PDO test for Oracle 2020-09-10 17:32:44 +10:00
Máté Kocsis
7aacc705d0
Add many missing closing PHP tags to tests
Closes GH-5958
2020-08-09 22:03:36 +02:00
Nikita Popov
7eec281b5e Avoid UNKNOWN default in PDO::query() 2020-07-24 11:44:47 +02:00
Nikita Popov
7d3e530f4e Use zpp for PDO fetch mode
Also changing the function signatures to accept variadic args
for the fetch params. If we're already breaking Doctrine anyway,
we may as well do it properly.
2020-07-20 16:05:33 +02:00
Christoph M. Becker
6c7b5c0760 Unbork tests for PDO_Firebird
PDO_Firebird raises a warning regarding the unknown SQL syntax, which
we have to silence to avoid run-tests.php to mark the test as borked.
2020-07-12 17:51:29 +02:00
Máté Kocsis
d30cd7d7e7
Review the usage of apostrophes in error messages
Closes GH-5590
2020-07-10 21:05:28 +02:00
Fabien Villepinte
0c6d06ecfa Replace EXPECTF when possible
Closes GH-5779
2020-06-29 21:31:44 +02:00
Ayesh Karunaratne
d114812faf [ci skip] Various typo fixes in stub comments and CHANGES file 2020-06-25 23:32:40 +02:00
Nikita Popov
ff19ec2df3 Introduce InternalIterator
Userland classes that implement Traversable must do so either
through Iterator or IteratorAggregate. The same requirement does
not exist for internal classes: They can implement the internal
get_iterator mechanism, without exposing either the Iterator or
IteratorAggregate APIs. This makes them usable in get_iterator(),
but incompatible with any Iterator based APIs.

A lot of internal classes do this, because exposing the userland
APIs is simply a lot of work. This patch alleviates this issue by
providing a generic InternalIterator class, which acts as an
adapater between get_iterator and Iterator, and can be easily
used by many internal classes. At the same time, we extend the
requirement that Traversable implies Iterator or IteratorAggregate
to internal classes as well.

Closes GH-5216.
2020-06-24 15:31:41 +02:00
AllenJB
50752401a7 Change the default PDO error mode to exceptions
According to <https://www.php.net/manual/en/pdo.error-handling.php>.
2020-05-04 22:51:47 +02:00
Nikita Popov
f8d795820e Reindent phpt files 2020-02-03 22:52:20 +01:00
Máté Kocsis
afdaa91170
Fix #78880: Final spelling fixes 2020-01-16 19:14:31 +01:00
Christoph M. Becker
7232779fca Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79106: PDO may fetch wrong column indexes with PDO::FETCH_BOTH
2020-01-13 18:49:38 +01:00
Christoph M. Becker
ed78c6dbae Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #79106: PDO may fetch wrong column indexes with PDO::FETCH_BOTH
2020-01-13 18:48:55 +01:00
Christoph M. Becker
30ce242435 Fix #79106: PDO may fetch wrong column indexes with PDO::FETCH_BOTH
Column names can be numeric strings, so we have to make sure to insert
the column values with the appropriate numeric keys, instead of adding
them.
2020-01-13 18:47:54 +01:00
Fabien Villepinte
a555cc0b3d Clean DONE tags from tests
Remove most of the `===DONE===` tags and its variations.
Keep `===DONE===` if the test output otherwise becomes empty.

Closes GH-4872.
2019-11-07 21:31:47 +01:00
Cameron Porter
07964fc2b5 pdo_oci: Add support for setting and getting the oracle OCI 18c call timeout value. 2019-11-01 10:36:55 +01:00
Nikita Popov
235983dfde Merge branch 'PHP-7.4' 2019-09-30 17:52:39 +02:00
Fabien Villepinte
0aa3acc6c4 Fix borked SKIPIFs 2019-09-30 17:51:41 +02:00
Matteo Beccati
9590912854 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix FR #71885 (Allow escaping question mark placeholders)
2019-07-22 19:35:37 +02:00
Matteo Beccati
b19fdc18a9 Fix FR #71885 (Allow escaping question mark placeholders) 2019-07-22 19:35:03 +02:00
Nikita Popov
cef59ad77b Merge branch 'PHP-7.4' 2019-07-02 12:10:32 +02:00
Sjon Hortensius
a7881df281 PDO: support username & password specified in DSN 2019-07-02 12:09:38 +02:00
Joe Watkins
7b58e43da3
Merge branch 'PHP-7.4'
* PHP-7.4:
  Follow up #77849 PDOStatement objects in undefined state after clone
2019-04-06 01:32:15 +02:00
Joe Watkins
1b85e72032
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Follow up #77849 PDOStatement objects in undefined state after clone
2019-04-06 01:31:32 +02:00
Joe Watkins
0c6a68fa36
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Follow up #77849 PDOStatement objects in undefined state after clone
2019-04-06 01:27:58 +02:00
Joe Watkins
a2b8a62abf
Follow up #77849 PDOStatement objects in undefined state after clone 2019-04-06 01:26:47 +02:00
Joe Watkins
0ab45c24fe
Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix bug #77849 Disable cloning of PDO handle/connection objects to avoid segfault
2019-04-06 00:56:52 +02:00
Joe Watkins
7f4a6b1478
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix bug #77849 Disable cloning of PDO handle/connection objects to avoid segfault
2019-04-06 00:56:23 +02:00
Joe Watkins
0d5be6ce91
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #77849 Disable cloning of PDO handle/connection objects to avoid segfault
2019-04-06 00:55:46 +02:00
Cameron Porter
9ec1525eb5
Fix bug #77849 Disable cloning of PDO handle/connection objects to avoid segfault 2019-04-06 00:54:59 +02:00
Peter Kokot
6426420f61 Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace dirname(__FILE__) by __DIR__ in tests
2019-03-15 23:36:47 +01:00
Fabien Villepinte
26dfce7f36 Replace dirname(__FILE__) by __DIR__ in tests 2019-03-15 22:55:30 +01:00
Nikita Popov
852485d8ec Adjust tests for zpp TypeError change 2019-03-11 11:32:20 +01:00
Peter Kokot
92ac598aab Remove local variables
This patch removes the so called local variables defined per
file basis for certain editors to properly show tab width, and
similar settings. These are mainly used by Vim and Emacs editors
yet with recent changes the once working definitions don't work
anymore in Vim without custom plugins or additional configuration.
Neither are these settings synced across the PHP code base.

A simpler and better approach is EditorConfig and fixing code
using some code style fixing tools in the future instead.

This patch also removes the so called modelines for Vim. Modelines
allow Vim editor specifically to set some editor configuration such as
syntax highlighting, indentation style and tab width to be set in the
first line or the last 5 lines per file basis. Since the php test
files have syntax highlighting already set in most editors properly and
EditorConfig takes care of the indentation settings, this patch removes
these as well for the Vim 6.0 and newer versions.

With the removal of local variables for certain editors such as
Emacs and Vim, the footer is also probably not needed anymore when
creating extensions using ext_skel.php script.

Additionally, Vim modelines for setting php syntax and some editor
settings has been removed from some *.phpt files.  All these are
mostly not relevant for phpt files neither work properly in the
middle of the file.
2019-02-03 21:03:00 +01:00
Adam Baratz
2c3b1767e2 Merge branch 'PHP-7.3'
* PHP-7.3:
  Check column number before trying to fetch the value
2018-11-26 10:37:42 -05:00
Adam Baratz
a22d2850d4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Check column number before trying to fetch the value
2018-11-26 10:36:18 -05:00
Sergei Morozov
e126ca1557 Check column number before trying to fetch the value 2018-11-26 10:34:37 -05:00
Nikita Popov
6e4b202694 Switch PDO to use serialize_deny
And remove dummy __sleep/__wakeup. This switches the thrown
exception type from PDOException to Exception.
2018-11-26 13:28:14 +01:00
Peter Kokot
d679f02295 Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:33:09 +02:00
Peter Kokot
b746e69887 Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:32:30 +02:00
Peter Kokot
f1d7e3ca0b Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:31:31 +02:00