Antony Dovgal
5c7c11c41d
MFH: check stream for NULL before writing to it
...
remove unnecessary semicolons
2006-03-18 22:24:05 +00:00
Ilia Alshanetsky
92ba7cccad
Fixed memory leak on unused bind var.
2006-03-15 15:25:50 +00:00
Marcus Boerger
1d461a6bcc
- MFH
2006-01-22 23:57:41 +00:00
Ilia Alshanetsky
64a7e46506
Fixed bug #35797 (segfault on PDOStatement::execute() with
...
zend.ze1_compatibility_mode = On).
2006-01-01 20:07:41 +00:00
foobar
5bd93221a8
bump year and license version
2006-01-01 12:51:34 +00:00
Ilia Alshanetsky
b83a0eb10c
Fixed memory corruption when FETCH_LAZY mode is being used.
2005-12-17 20:00:00 +00:00
Ilia Alshanetsky
bdf9c4d15c
Fixed bug #35694 (Improved error message for invalid fetch mode).
2005-12-15 22:33:02 +00:00
foobar
3e669bc950
MFH: nuke php3 legacy
2005-12-06 02:28:41 +00:00
Antony Dovgal
06c57b7d55
tweak fix a bit
...
(by request of Wez)
2005-12-01 20:39:12 +00:00
Antony Dovgal
59087fee52
MFH: fix #35508 (PDO fails when unknown fetch mode specified)
2005-12-01 19:59:58 +00:00
Wez Furlong
63dae4ee74
Fix #35431 ; LAZY fetch and fetchAll == crash.
...
Lazy makes no sense with fetchAll; disallow it.
2005-11-27 21:01:58 +00:00
Antony Dovgal
6543134dea
MFH: fix #35430 (PDO crashes on incorrect FETCH_FUNC use)
2005-11-27 21:01:02 +00:00
Wez Furlong
426fb96cc9
Doh, need to canonicalize parameter names (by prefixing with :) before
...
attempting to remap them to positional args.
2005-11-26 21:20:52 +00:00
Wez Furlong
2618322506
Bug: when stringify fetch mode is on, and the driver returns a string instead
...
of a stream for a LOB parameter, PDO would incorrectly return NULL for that
column.
2005-11-25 03:23:17 +00:00
Wez Furlong
c2d53719c2
Fix for #35332 .
...
The problem is caused by the user mixing positional and named parameters.
PDO was blindly adding the parameters, unaware that the same parameters were
already allocated by position.
What we do now is register the parameter with the driver before adding it to
any hash. This gives the driver an opportunity to normalize the name and
parameter number. PDO can then ensure that only one entry is occupied in the
hash for a given parameter.
2005-11-25 00:29:04 +00:00
Ilia Alshanetsky
8e49bacf95
Fixed bug #35358 (Incorrect error messages for PDO class constants).
2005-11-24 16:21:43 +00:00
Wez Furlong
0bd9518f8c
Closes PECL #5944 ; binding an invalid parameter can lead to segfaults.
...
Modified patch provided by curt@php.net .
2005-11-16 06:32:33 +00:00
Ilia Alshanetsky
8e2de517bb
Fixed bug #35135 (PDOStatment without related PDO object may crash).
2005-11-07 16:53:15 +00:00
Marcus Boerger
24a80c3ebf
- Fix remaining memleaks
...
# all tests pass for me now for the first time in:
# pgsql, mysql, sqlite, sqlite2
2005-10-31 07:47:40 +00:00
Wez Furlong
b74698f135
fix misinterpretation of data when overriding types via bindColumn.
...
Very slightly modified patch from Marcus.
2005-10-31 03:23:38 +00:00
Wez Furlong
40c24a65c4
improve test portability.
...
improve infrastructure for LOB support.
2005-10-31 02:07:38 +00:00
Marcus Boerger
e7494a7e9e
- Fix memleak
2005-10-30 22:17:52 +00:00
Wez Furlong
0139cd0e53
Closes PECL Bug #5772 ; FETCH_FUNC broken for mixed case function names
2005-10-29 03:11:46 +00:00
Wez Furlong
7af8089096
Closes PECL #5809 ; PDOStatement::execute(array(...)) would modify its args.
...
It should behave like bindValue() not bindParam().
2005-10-29 03:01:19 +00:00
Ilia Alshanetsky
6b46a441cd
Fixed compiler warning
2005-10-25 03:53:25 +00:00
Ilia Alshanetsky
a5fe9808aa
MFH: Fixed bug #34809 (FETCH_INTO in PDO crashes without a destination object).
2005-10-10 14:44:16 +00:00
Marcus Boerger
f3c44f6065
- MFH Fixed Bug #34590 User defined PDOStatement class can't implement
...
methods
- Reimplement Traversable interface
# If there is a problem with this i need a backtrace. As far as i can
# tell by gdb/valgrind/logic there is no error here. But missuse leads to
# the same error report casing the exclusion of interface Traversable.
2005-09-21 22:58:39 +00:00
Wez Furlong
8dc3e7b147
When populating bound columns, override the returned type with the type
...
specified by the user in their bind.
2005-09-11 20:32:28 +00:00
Wez Furlong
81151a5dbf
remove traversable interface; apparently it's not enough, and this stuff is too
...
magical to figure out wtf should be added.
2005-09-11 14:27:10 +00:00
Wez Furlong
9c252b4b07
closes PECL #5027 ; PDO_FETCH_NAMED not handled via setFetchMode().
2005-09-10 19:32:15 +00:00
Wez Furlong
efe24c0205
add __sleep and __wakeup functions to prevent serialize/deserialize from being used on PDO objects. Refs PECL #5217
2005-09-10 17:48:45 +00:00
Wez Furlong
0730fa2af9
Add PDOStatement::bindValue(), which is similar to bindParam(), except that
...
it binds the value of the zval at the time it is called, rather than keeping
a reference to the zval and taking the value at execute() time.
2005-09-10 15:32:04 +00:00
George Schlossnagle
248c30dad7
MFH. Protect against underflow - refs http://pecl.php.net/bugs/bug.php?id=5193
2005-09-01 14:44:11 +00:00
Ilia Alshanetsky
ecc34bddcc
Fixed memory leak.
2005-08-03 18:26:16 +00:00
Wez Furlong
bf85bf515e
add sanity checks
2005-07-27 14:18:01 +00:00
Marcus Boerger
d8eece2b43
- Add missing part to make colon in parameter binding optional
2005-07-22 14:31:20 +00:00
Wez Furlong
cfe1dc3b46
this looks like a much better fix for refcounting/shutdown in lazy objects.
2005-07-22 04:33:56 +00:00
Wez Furlong
882503110d
fix leak (ugh, this nuance gets me every time)
2005-07-22 02:09:19 +00:00
Wez Furlong
3560bb9c2b
Fixes #33785 for me
2005-07-22 01:34:43 +00:00
Wez Furlong
be88f5a960
make a start on a debugging function.
2005-07-18 14:46:55 +00:00
Wez Furlong
9240c5f521
remember ? -> :pdox mapping so that binds by position can be mapped to names if required.
2005-07-12 03:19:44 +00:00
Wez Furlong
664ebfa499
expand oracle null handling compatability by offering the ability to convert
...
NULLs into empty strings as well as the other way around. It still doesn't
help a great deal in the long run, but at least the option is there.
Make sure hash tables are nulled out to avoid double freeing them.
2005-07-12 02:40:59 +00:00
Andrey Hristov
b3aa24ff98
fix a segfault with the following script:
...
<?php
$dbh = new PDO('mysql:dbname=test;host=localhost', "root", "secret");
$what = 1;
$stmt = $dbh->prepare('select a, b, c from t123 where a=:what');
$stmt->bindParam(1, $what, PDO_PARAM_INT, 12);
var_dump($stmt->execute());
var_dump($stmt->fetchObject());
?>
2005-07-11 14:14:56 +00:00
Wez Furlong
d3b653e97b
Added:
...
proto bool PDOStatement::closeCursor()
Closes the cursor, leaving the statement ready for re-execution.
The purpose of the function is to free up the connection to the server so that
other queries may be issued, but leaving the statement in a state that it can
be re-executed.
This is implemented either as an optional driver specific method (allowing for
maximum efficiency), or as the generic PDO fallback if no driver specific
function is installed.
The PDO generic fallback is semantically the same as writing the following code
in your PHP script:
do {
while ($stmt->fetch())
;
if (!$stmt->nextRowset())
break;
} while (true);
2005-07-09 03:52:41 +00:00
Wez Furlong
38a02b6244
For named-parameter-to-named-parameter rewrites, we need to map the original
...
names to the new names.
2005-07-08 17:00:28 +00:00
Wez Furlong
8f31f0cfaa
Fix a shutdown order issue I saw in the pgsql driver. Hope this doesn't mess
...
up something in the OCI driver; I think I've been here before.
2005-07-08 15:25:15 +00:00
Wez Furlong
49c1882837
Add a PDO_ATTR_STRINGIFY_FETCHES attribute, which is used to convert integer or
...
floating point values into strings during fetch. This is a compatibility hack
for drivers that return native types rather than string representations.
We use this flag in the test suite to persuade postgres tests to pass.
2005-07-08 04:13:00 +00:00
Ilia Alshanetsky
86028ad122
Return an empty array rather then FALSE in fetchAll() on no results.
2005-07-07 15:14:10 +00:00
Wez Furlong
68caaadc6a
Fix bug in bindColumn() for drivers that implement native prepared statements
...
and that use the PDO rewriter to handle non-native parameter syntax.
2005-07-07 12:45:40 +00:00
Dmitry Stogov
0eb0b781e0
Fixed memory leaks
2005-07-07 11:19:56 +00:00
Wez Furlong
d4a158260b
Add PDO_FETCH_NAMED; closes PECL #4641 by providing a way to access columns
...
by name, even when multiple columns have the same name:
$sql = "SELECT 1 a, 2 a, 3 b, 4 c, 5 d, 6 c, 7 a";
echo "$sql\n";
print_r($db->query($sql)->fetchAll(PDO_FETCH_NAMED));
Array
(
[0] => Array
(
[a] => Array
(
[0] => 1
[1] => 2
[2] => 7
)
[b] => 3
[c] => Array
(
[0] => 4
[1] => 6
)
[d] => 5
)
)
Also added two new attributes for use at prepare time;
PDO_ATTR_FETCH_TABLE_NAMES and PDO_ATTR_FETCH_CATALOG_NAMES instruct the driver
that the names of the columns that they return to PDO should include the table
and catalog names respectively. Both attributes may be used together or
independently. The catalog, table and column name components should be
separated by a . character.
2005-07-03 03:49:44 +00:00
Ilia Alshanetsky
6fd9e5a64f
Fixed memory leak on PDO_FETCH_OBJ.
2005-07-02 17:19:58 +00:00
Dmitry Stogov
cf5a6f81e3
Fixed zval_ptr_dtor(&return_value) on uninicialized zval
2005-06-08 19:51:56 +00:00
Ilia Alshanetsky
def27b9959
As per PDO meeting on PHP|Tropics fetchSingle is being renamed to
...
fetchColumn and now supports specification of the column to retrieve.
2005-05-17 01:41:51 +00:00
Ilia Alshanetsky
d30a9ee96d
removed debug code.
2005-04-27 03:12:18 +00:00
Wez Furlong
7dd430ff28
fix bug #32795
2005-04-22 02:40:48 +00:00
Marcus Boerger
d27be11233
- Fix null handling found by thies
2005-03-24 12:32:06 +00:00
Marcus Boerger
c9108bba25
- Simplify code (only implement handlers that are necessary)
...
- Fix handling of read only property 'queryString'
- Fix overloading
- Move class init code to their defining .c files for simplification
- Mark class PDORow as final until there's a need to inherit this and
someone implements the handlers correct then.
2005-03-21 00:29:06 +00:00
Marcus Boerger
7b2bee1d5b
- Fix warnings by doing it the Zend way
2005-03-19 10:51:42 +00:00
Wez Furlong
5248f59d1a
show list of PDO drivers in phpinfo.
...
Highlight a possible problem area; iterator leaks when used in foreach(),
at least with sqlite2 driver.
2005-03-12 01:16:59 +00:00
Wez Furlong
f7ebff804d
"thou shalt not throw exceptions except in really exceptional circumstances."
...
The only allowed places to throw them directly are from within the PDO class
constructors or when dealing with transaction level attributes, where
"hard-failure" is a feature.
All other errors should use the PDO error handling mechanism and respect the
users selected error mode.
2005-03-09 05:50:03 +00:00
Wez Furlong
de1d8b91f0
prep package file for release.
...
fix my favourite typo.
fix compile warnings
2005-03-09 05:03:58 +00:00
Marcus Boerger
9c08e3ccae
- Update signature
2005-03-07 22:27:29 +00:00
Marcus Boerger
6ce9bcc31e
- Need to drop ce until engine gets fixed
2005-02-28 19:23:56 +00:00
Marcus Boerger
fdc3fce335
- Fix missapplied logic inversion
2005-02-28 01:08:07 +00:00
Marcus Boerger
fef7cb4e29
- Disable direct serializing for PHP 5.0
2005-02-27 22:58:08 +00:00
Marcus Boerger
6b18b88b2c
- Allow default fetch mode to contain fetch flags
2005-02-27 22:48:14 +00:00
Marcus Boerger
03a4a8c11d
- Add some fetch column related capailities
...
- Add direct (classtype based) unserializing capabilities
2005-02-27 22:32:11 +00:00
Marcus Boerger
40d180a87d
- Reorganize ctor_args handling (fixes some bugs)
2005-02-23 00:52:46 +00:00
Marcus Boerger
3c743e3a98
- Allow to derive PDOStatement
...
- Verify fetch modes
- Add last fetch mode PDO_FETCH_FUNC (only valid inside fetchAll()) that
allows to completley customize the way data is treated on the fly
2005-02-22 19:27:34 +00:00
Marcus Boerger
d56ce00b85
- Add fetch flag PDO_FETCH_CLASSTYPE
2005-02-20 16:12:57 +00:00
Marcus Boerger
3239a56526
- Only call the ctor once
2005-02-20 15:28:09 +00:00
Marcus Boerger
5a2620349e
- Fix memleak and optimize PDO_FETCH_CLASS
2005-02-20 14:31:44 +00:00
Marcus Boerger
883ee83478
- Call ctor after initializing the props like regular db exts do
2005-02-20 13:42:03 +00:00
Marcus Boerger
07a8ea220f
- Need to specify class_entry in PDO_FETCH_CLASS mode
2005-02-20 13:33:45 +00:00
Marcus Boerger
b788dc9d2a
- Add fetch mode PDO_FETCH_UNIQUE
2005-02-19 23:48:30 +00:00
Marcus Boerger
a452a445cf
- Simplify
2005-02-19 23:36:58 +00:00
Marcus Boerger
474fcab623
- Add PDO_FETCH_GROUP to fetchAll()
2005-02-19 23:11:23 +00:00
Marcus Boerger
41674da59f
- Add full PDO_FETCH_CLASS capabilities to fetchAll()
2005-02-19 21:49:42 +00:00
Marcus Boerger
e6a5ebbdab
- Default to stdClass in PDO_FETCH_CLASS mode if no classname is given
2005-02-19 21:35:31 +00:00
Marcus Boerger
f860c70362
- In fetch mode PDO_FETCH_CLASS handle constructor args
...
- Add PDOStatement::fetchObject
2005-02-13 17:04:04 +00:00
Wez Furlong
81999fdeba
Fix variable declaration
2005-02-13 06:42:19 +00:00
Wez Furlong
0da6a84edf
implement mapping of :name to ? parameters for drivers that only support ?
...
placeholders.
The current restriction is that you may not use the same named parameter
more than one in a given query, as there is a danger of scary things happen
with the zval if it gets bound multiple times.
2005-02-13 06:29:35 +00:00
Ilia Alshanetsky
1b3dd5db8b
remove unused vars.
2005-02-09 15:56:27 +00:00
Wez Furlong
36e3ea8cb2
add input/output parameter type flag
2005-02-07 01:12:49 +00:00
Wez Furlong
ccf0a6a557
add a caller_frees parameter to get_col() to allow drivers that need
...
to allocate data on demand to do so without worrying about cleaning it up.
Spec out how LOB parameters are returned.
2005-02-06 22:11:12 +00:00
Wez Furlong
e3ba31e899
better handling of pdo-level errors
2005-02-06 21:05:59 +00:00
Wez Furlong
b2126a848a
This will probably fix PECL Bug #3273
2005-02-06 16:46:18 +00:00
Edin Kadribasic
64e8c3105c
Return lobs as strings for now
2005-02-05 22:46:26 +00:00
Wez Furlong
15e754201f
pass param type to quoter functions
2005-02-05 21:29:42 +00:00
Wez Furlong
6ddbfa0733
Revise query parser so that it can rewrite from one bind syntax to another.
...
Expose it as PDO_API. No drivers utilize this feature yet.
2005-01-21 03:57:06 +00:00
Wez Furlong
a39d50c95f
don't propogate an unspecified length to the driver.
...
Drivers will used a 0 length as a hint that the parameter is an in-out or out
parameter.
2005-01-19 05:25:40 +00:00
Wez Furlong
a536e31fb1
leak/segv less
2005-01-19 03:44:49 +00:00
Wez Furlong
544d61873d
proto bool PDOStatement::nextRowset()
...
Advances to the next rowset in a multi-rowset statement handle. Returns true if
it succeded, false otherwise
2005-01-19 01:12:52 +00:00
Wez Furlong
a9d98544de
Allow drivers to select bind emulation on a per statement basis
2005-01-18 04:58:50 +00:00
Wez Furlong
8b35436cb1
remove error and hook up rowCount
2005-01-18 00:58:15 +00:00
Wez Furlong
37ea5fbeb5
Tidy up driver specific method handling
2005-01-17 23:59:16 +00:00
Wez Furlong
dd842e4bf4
API support for scrollable cursors
2005-01-12 04:49:12 +00:00
Wez Furlong
076bc75c01
add theoretical support for returning ints as ints and bools as bools.
...
individual drivers need to support returning data in these formats.
2005-01-12 03:26:46 +00:00
Wez Furlong
6e0d8dd06f
implement SQLSTATE style error codes.
...
Allow drivers to add methods to dbh and stmt objects
(note that we can't use a class, because the use only sees the PDO class).
Clarify the api slightly:
PDO::exec() is used for one-shot queries that don't return rows
PDO::query() is a convenience function for returning a rowset without
having to go through the steps of preparing and executing.
2005-01-07 05:23:10 +00:00