Sergey Tsalkov
57b7527a46
fix bug in columnList(), add test
2021-08-08 14:15:19 +00:00
Sergey Tsalkov
f7a52ca410
DATE_FORMAT() tests for %% escaping
2021-06-28 22:20:59 +00:00
Sergey Tsalkov
15f40efe5d
add DB::queryWalk() -- still untested
...
add DB::lastQuery() (with tests)
2021-06-24 03:05:46 +00:00
Sergey Tsalkov
50fd6ed6d2
actually bring back deprecated methods, keep them for now to maintain backwards compatability
2021-06-23 01:27:03 +00:00
Sergey Tsalkov
bac5503d5a
PHP 8 complains when trying to access closed $mysqli object, not sure how to test this properly
...
I don't think we need this test very much, anyway
2021-06-20 03:13:11 +00:00
Sergey Tsalkov
42894b70ae
re-design query parser, new model has cleaner code and allows for %% escaping of % characters
2021-06-20 03:12:15 +00:00
Sergey Tsalkov
20c7acd8a4
DB::parse() lets you generate queries without running them
2021-06-20 02:32:56 +00:00
Sergey Tsalkov
1d2ad974f8
drop deprecated methods:
...
queryOneRow (alias of queryFirstRow)
queryOneList (alias of queryFirstList)
queryOneColumn
queryOneField
2021-06-20 02:32:56 +00:00
Sergey Tsalkov
7c1f9bc226
DB::$usenull is removed, it makes no sense in a modern PHP context
2021-06-20 02:32:56 +00:00
Sergey Tsalkov
dab71efacd
DB::columnList() now returns details
2021-06-20 02:28:26 +00:00
Sergey Tsalkov
38545ddb3a
remove more PHP 5.2 cruft, we now require PHP 5.3+
2021-06-20 02:28:26 +00:00
Sergey Tsalkov
e8c19ca2f8
clean up update() and delete(), both will now be compatible with named and numbered arguments
...
resolves #54
2020-07-10 01:13:31 +00:00
Sergey Tsalkov
226a08611f
small test fix to pass on PHP 7.3
2020-07-09 19:51:28 +00:00
Sergey Tsalkov
67b24c916d
additional test with %li0
2014-10-27 02:00:21 +00:00
Sergey Tsalkov
e0660a9368
%? no longer handles arrays and hashes for security purposes
...
those are moved into %l?, %ll?, %hc, %ha, %ho for different uses
2014-10-27 02:00:21 +00:00
Sergey Tsalkov
eb36858f1a
columnList() properly escapes table names
2014-06-16 22:40:22 +00:00
Sergey Tsalkov
1d797b306e
bugfix: insert/update type functions don't break when using a param_char other than %
2014-06-14 02:41:06 +00:00
Sergey Tsalkov
37fd169be3
minor bugfix: don't assume that the query results for queryFirstRow() or queryFirstList() will be an array (can also be a bool)
2014-06-14 00:27:38 +00:00
Sergey Tsalkov
7b0da839de
add yet another test for this weird bug people are reporting
...
tests *still* all pass, I can't reproduce the bug
2013-11-08 14:14:46 -08:00
Sergey Tsalkov
1d51c2b674
add additional test case for a reported bug where '%s' in data is parsed as a query placeholder
...
I can't reproduce the bug
2013-09-13 22:36:33 -07:00
Sergey Tsalkov
740ca7bc67
restore %ss to working, add unit test so it won't break again
2013-06-21 16:27:05 -07:00
Sergey Tsalkov
e61d66fdf8
new DateTime() can be used with insert-like commands, and with %? as well
2013-06-02 19:45:44 -07:00
Sergey Tsalkov
e9a55de0b4
DB::$usenull param can be used to decide whether insert()-like commands insert NULL or empty string for NULL
2013-06-02 19:22:14 -07:00
Sergey Tsalkov
9e4cbc28c1
%t and %lt variables can be used to hold a datetime, which will be formatted to mysql standards
2013-06-02 19:10:28 -07:00
Sergey Tsalkov
e94f75fe2a
DB::disconnect() allows easy disconnecting from mysql
2013-03-19 12:02:47 -07:00
Sergey Tsalkov
ce11e65070
successful insert/replace/update/delete will return true
2013-03-19 11:31:50 -07:00
Sergey Tsalkov
6cb757797b
minor fix for calculated columns with fullcolumns
2013-03-19 11:20:20 -07:00
Sergey Tsalkov
027e1529ba
create DB::queryFullColumns() which will supply full column names in the format table.column
2013-02-22 22:11:27 -08:00
Sergey Tsalkov
f89d70e49e
bugfix: can use null value for named or numbered parameters
2013-02-22 16:32:15 -08:00
Sergey Tsalkov
039468f3a3
more cleanups and remove old and unused code
2013-02-22 15:08:08 -08:00
Sergey Tsalkov
2ffb770f8a
bugfix: don't fail when inserting multiple rows at once, and one of the values is NULL
2012-09-19 14:58:09 -07:00
Sergey Tsalkov
5b4e5a959a
fix named parameters
2012-07-22 17:43:34 -07:00
Sergey Tsalkov
7582961ee1
named parameters for queries
2012-07-22 17:29:59 -07:00
Sergey Tsalkov
9930fc073a
restore %lb parameter to working, add unit test so it doesn't break again
2012-02-03 17:19:54 -08:00
Sergey Tsalkov
7825f90080
can now refer to a specific argument in a query
...
e.g. %s2 for the third argument, taken as a string
2011-12-17 19:54:55 -08:00
Sergey Tsalkov
80cc78edcd
insertUpdate() can now handle a second array for the update component, or nothing, so it'll
...
re-use the insert array for the update component
2011-09-23 21:29:40 -07:00
Sergey Tsalkov
5050205e58
add insertUpdate() function for "insert ... on duplicate key update" behavior
2011-09-23 19:15:41 -07:00
Sergey Tsalkov
a2800ef04b
add insertIgnore() function -- pretty self explanatory
2011-09-23 16:11:10 -07:00
Sergey Tsalkov
164c7157a6
queryRaw() will now be officially supported, returns mysqli_result instead of array of assoc
...
arrays
2011-09-23 15:57:36 -07:00
Sergey Tsalkov
f09308a3f7
re-organize test files, make it easy to test for both php 5.2 and 5.3
2011-09-23 15:51:35 -07:00
Sergey Tsalkov
69bfe15ebb
add test case regarding BLOBs
2011-08-25 23:54:52 -07:00
Sergey Tsalkov
7621b50a02
handle non-sql errors (such as failure to connect to MySQL server) in a user-defined way
...
adds DB::$nonsql_error_handler and DB::$throw_exception_on_nonsql_error
2011-08-25 23:34:37 -07:00
Sergey Tsalkov
860da8d18a
insert(), replace(), and update() now handle the value NULL correctly
2011-05-31 21:50:24 -04:00
Sergey Tsalkov
0ed2837f3d
on second thought, we won't have insertMany() and replaceMany(), but insert() and replace()
...
will figure out which one you mean
this means that a minor undocumented feature, being able to insert an array and have it
automatically serialized, can't exist anymore
2011-04-29 01:48:27 -04:00
Sergey Tsalkov
96892fa6c2
DB::$param_char can now be used to change the char that needs to appear in front of params (% is the default)
2011-04-28 18:41:13 -04:00
Sergey Tsalkov
ad4889da09
revert last commit -- this is a bad way to do it, and I'll have to come up with something else
...
to let people use strings like %i in their SQL and bypass the parser
2011-04-28 18:14:59 -04:00
Sergey Tsalkov
12604d7854
bugfix: let people have literal %'s in their queries without confusing the parser
...
by using %% instead
2011-04-23 20:31:18 -04:00
Sergey Tsalkov
8c5299c2e2
* add insertMany() and replaceMany() to let you do multiple inserts in one SQL command
...
* error and success handlers can now be set to static and object methods
2011-04-23 00:46:51 -04:00
Sergey Tsalkov
964a36e4c2
sqleval() can now be used with %s, %i, and all that good stuff
...
there is probably no good reason to do this, as things like md5() can be done
from PHP, but people keep asking for it, so here it is :)
2011-04-22 23:29:09 -04:00
Sergey Tsalkov
68774532e1
add delete() function -- mostly for completeness with insert(), update(), etc
2011-04-22 23:15:14 -04:00