Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
typo3
qfq
Commits
a2df60c1
Commit
a2df60c1
authored
Jan 06, 2020
by
Carsten Rose
Browse files
Merge remote-tracking branch 'origin/develop' into develop
parents
840073a8
48dda007
Pipeline
#3106
passed with stages
in 2 minutes and 7 seconds
Changes
6
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
extension/Classes/Core/Constants.php
View file @
a2df60c1
...
...
@@ -1372,6 +1372,7 @@ const QUERY_TYPE_SELECT = 'type: select,show,describe,explain';
const
QUERY_TYPE_INSERT
=
'type: insert'
;
const
QUERY_TYPE_UPDATE
=
'type: update,replace,delete'
;
const
QUERY_TYPE_CONTROL
=
'type: set'
;
const
QUERY_TYPE_FAILED
=
'type: query failed'
;
//Regexp
//const REGEXP_DATE_INT = '^\d{4}-\d{2}-\d{2}$';
...
...
extension/Classes/Core/Database/Database.php
View file @
a2df60c1
...
...
@@ -181,6 +181,7 @@ class Database {
* @param string $specificMessage
* @param array $keys
* @param array $stat DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
* @param array $skipErrno
*
* @return array|int
* SELECT | SHOW | DESCRIBE | EXPLAIN: see $mode
...
...
@@ -190,7 +191,7 @@ class Database {
* @throws \DbException
* @throws \UserFormException
*/
public
function
sql
(
$sql
,
$mode
=
ROW_REGULAR
,
array
$parameterArray
=
array
(),
$specificMessage
=
''
,
array
&
$keys
=
array
(),
array
&
$stat
=
array
())
{
public
function
sql
(
$sql
,
$mode
=
ROW_REGULAR
,
array
$parameterArray
=
array
(),
$specificMessage
=
''
,
array
&
$keys
=
array
(),
array
&
$stat
=
array
(),
array
$skipErrno
=
array
())
{
$queryType
=
''
;
$result
=
array
();
$this
->
closeMysqliStmt
();
...
...
@@ -205,7 +206,7 @@ class Database {
$specificMessage
.
=
" "
;
}
$count
=
$this
->
prepareExecute
(
$sql
,
$parameterArray
,
$queryType
,
$stat
,
$specificMessage
);
$count
=
$this
->
prepareExecute
(
$sql
,
$parameterArray
,
$queryType
,
$stat
,
$specificMessage
,
$skipErrno
);
if
(
$count
===
false
)
{
throw
new
\
DbException
(
$specificMessage
.
"No idea why this error happens - please take some time and check the problem."
,
ERROR_DB_GENERIC_CHECK
);
...
...
@@ -339,23 +340,29 @@ class Database {
* Returns the number of selected rows (SELECT, SHOW, ..) or the affected rows (UPDATE, INSERT). $stat contains
* appropriate num_rows, insert_id or rows_affected.
*
* In case of an error, throw an exception.
* mysqli error code listed in $skipErrno[] do not throw an error.
*
* @param string $sql SQL statement with prepared statement variable.
* @param array $parameterArray parameter array for prepared statement execution.
* @param string $queryType returns QUERY_TYPE_SELECT | QUERY_TYPE_UPDATE | QUERY_TYPE_INSERT, depending on
* the query.
* @param array $stat DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
*
* @param string $specificMessage
* @param array $skipErrno
*
* @return int|mixed
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
private
function
prepareExecute
(
$sql
,
array
$parameterArray
,
&
$queryType
,
array
&
$stat
,
$specificMessage
=
''
)
{
private
function
prepareExecute
(
$sql
,
array
$parameterArray
,
&
$queryType
,
array
&
$stat
,
$specificMessage
=
''
,
array
$skipErrno
=
array
()
)
{
// Only log a modify type statement here if sqlLogMode is (at least) modifyAll
// If sqlLogMode is modify, log the statement after it has been executed and we know if there are affected rows.
$sqlLogMode
=
$this
->
isSqlModify
(
$sql
)
?
SQL_LOG_MODE_MODIFY_ALL
:
SQL_LOG_MODE_ALL
;
$errno
=
0
;
$result
=
0
;
$stat
=
array
();
$errorMsg
[
ERROR_MESSAGE_TO_USER
]
=
empty
(
$specificMessage
)
?
'SQL error'
:
$specificMessage
;
...
...
@@ -372,34 +379,52 @@ class Database {
$this
->
dbLog
(
$sqlLogMode
,
$sql
,
$parameterArray
);
if
(
false
===
(
$this
->
mysqli_stmt
=
$this
->
mysqli
->
prepare
(
$sql
)))
{
$this
->
dbLog
(
SQL_LOG_MODE_ERROR
,
$sql
,
$parameterArray
);
$errorMsg
[
ERROR_MESSAGE_TO_DEVELOPER
]
=
$this
->
getSqlHint
(
$sql
,
$this
->
mysqli
->
error
);
$errorMsg
[
ERROR_MESSAGE_OS
]
=
'[ mysqli: '
.
$this
->
mysqli
->
errno
.
' ] '
.
$this
->
mysqli
->
error
;
throw
new
\
DbException
(
json_encode
(
$errorMsg
),
ERROR_DB_PREPARE
);
if
(
$skipErrno
===
array
()
&&
false
===
array_search
(
$this
->
mysqli
->
errno
,
$skipErrno
))
{
$this
->
dbLog
(
SQL_LOG_MODE_ERROR
,
$sql
,
$parameterArray
);
$errorMsg
[
ERROR_MESSAGE_TO_DEVELOPER
]
=
$this
->
getSqlHint
(
$sql
,
$this
->
mysqli
->
error
);
$errorMsg
[
ERROR_MESSAGE_OS
]
=
'[ mysqli: '
.
$this
->
mysqli
->
errno
.
' ] '
.
$this
->
mysqli
->
error
;
throw
new
\
DbException
(
json_encode
(
$errorMsg
),
ERROR_DB_PREPARE
);
}
else
{
$errno
=
$this
->
mysqli
->
errno
;
}
}
if
(
count
(
$parameterArray
)
>
0
)
{
if
(
false
===
$this
->
prepareBindParam
(
$parameterArray
))
{
$this
->
dbLog
(
SQL_LOG_MODE_ERROR
,
$sql
,
$parameterArray
);
$errorMsg
[
ERROR_MESSAGE_TO_DEVELOPER
]
=
$this
->
getSqlHint
(
$sql
,
$this
->
mysqli
->
error
);
$errorMsg
[
ERROR_MESSAGE_OS
]
=
'[ mysqli: '
.
$this
->
mysqli_stmt
->
errno
.
' ] '
.
$this
->
mysqli_stmt
->
error
;
if
(
$skipErrno
!==
array
()
&&
false
===
array_search
(
$this
->
mysqli
->
errno
,
$skipErrno
))
{
$this
->
dbLog
(
SQL_LOG_MODE_ERROR
,
$sql
,
$parameterArray
);
$errorMsg
[
ERROR_MESSAGE_TO_DEVELOPER
]
=
$this
->
getSqlHint
(
$sql
,
$this
->
mysqli
->
error
);
$errorMsg
[
ERROR_MESSAGE_OS
]
=
'[ mysqli: '
.
$this
->
mysqli_stmt
->
errno
.
' ] '
.
$this
->
mysqli_stmt
->
error
;
throw
new
\
DbException
(
json_encode
(
$errorMsg
),
ERROR_DB_BIND
);
throw
new
\
DbException
(
json_encode
(
$errorMsg
),
ERROR_DB_BIND
);
}
else
{
$errno
=
$this
->
mysqli
->
errno
;
}
}
}
if
(
false
===
$this
->
mysqli_stmt
->
execute
())
{
$this
->
dbLog
(
SQL_LOG_MODE_ERROR
,
$sql
,
$parameterArray
);
$errorMsg
[
ERROR_MESSAGE_TO_DEVELOPER
]
=
$this
->
getSqlHint
(
$sql
,
$this
->
mysqli
->
error
);
$errorMsg
[
ERROR_MESSAGE_OS
]
=
'[ mysqli: '
.
$this
->
mysqli_stmt
->
errno
.
' ] '
.
$this
->
mysqli_stmt
->
error
;
if
(
$skipErrno
!==
array
()
&&
false
===
array_search
(
$this
->
mysqli
->
errno
,
$skipErrno
))
{
$this
->
dbLog
(
SQL_LOG_MODE_ERROR
,
$sql
,
$parameterArray
);
$errorMsg
[
ERROR_MESSAGE_TO_DEVELOPER
]
=
$this
->
getSqlHint
(
$sql
,
$this
->
mysqli
->
error
);
$errorMsg
[
ERROR_MESSAGE_OS
]
=
'[ mysqli: '
.
$this
->
mysqli_stmt
->
errno
.
' ] '
.
$this
->
mysqli_stmt
->
error
;
throw
new
\
DbException
(
json_encode
(
$errorMsg
),
ERROR_DB_EXECUTE
);
throw
new
\
DbException
(
json_encode
(
$errorMsg
),
ERROR_DB_EXECUTE
);
}
else
{
$errno
=
$this
->
mysqli
->
errno
;
}
}
$msg
=
''
;
$count
=
0
;
$command
=
strtoupper
(
explode
(
' '
,
$sql
,
2
)[
0
]);
if
(
$errno
===
0
)
{
$command
=
strtoupper
(
explode
(
' '
,
$sql
,
2
)[
0
]);
}
else
{
$command
=
'FAILED'
;
}
switch
(
$command
)
{
case
'SELECT'
:
case
'SHOW'
:
...
...
@@ -444,6 +469,12 @@ class Database {
$count
=
$stat
[
DB_AFFECTED_ROWS
];
$msg
=
''
;
break
;
case
'FAILED'
:
$queryType
=
QUERY_TYPE_FAILED
;
$stat
[
DB_AFFECTED_ROWS
]
=
0
;
$count
=
-
1
;
$msg
=
'[ mysqli: '
.
$this
->
mysqli_stmt
->
errno
.
' ] '
.
$this
->
mysqli_stmt
->
error
;
break
;
default
:
// Unknown command: treat it as a control command
...
...
extension/Classes/Core/Database/DatabaseUpdate.php
View file @
a2df60c1
...
...
@@ -374,6 +374,9 @@ class DatabaseUpdate {
* @throws \UserFormException
*/
private
function
dbUpdateStatements
(
$old
,
$new
)
{
$dummy
=
array
();
if
(
$new
==
''
||
$old
===
false
||
$old
===
null
)
{
return
;
}
...
...
@@ -392,7 +395,9 @@ class DatabaseUpdate {
if
(
$apply
)
{
// Play Statements
foreach
(
$sqlStatements
as
$sql
)
{
$this
->
db
->
sql
(
$sql
,
ROW_REGULAR
,
array
(),
"Apply updates to QFQ database. Installed version:
$old
. New QFQ version:
$new
"
);
$this
->
db
->
sql
(
$sql
,
ROW_REGULAR
,
array
(),
"Apply updates to QFQ database. Installed version:
$old
. New QFQ version:
$new
"
,
$dummy
,
$dummy
,
[
1060
]
/* duplicate column name */
);
}
// Remember already applied updates - in case something breaks and the update has to be repeated.
$this
->
setDatabaseVersion
(
$new
);
...
...
extension/Tests/Unit/Core/Database/AbstractDatabaseTest.php
View file @
a2df60c1
...
...
@@ -63,6 +63,7 @@ abstract class AbstractDatabaseTest extends TestCase {
* @throws \DbException
* @throws \UserFormException
* @throws \UserReportException
* @throws \Exception
*/
protected
function
setUp
()
{
...
...
extension/Tests/Unit/Core/Database/DatabaseFunction.php
View file @
a2df60c1
...
...
@@ -115,6 +115,7 @@ class DatabaseFunction extends AbstractDatabaseTest {
* @throws \DbException
* @throws \UserFormException
* @throws \UserReportException
* @throws \Exception
*/
protected
function
setUp
()
{
parent
::
setUp
();
...
...
extension/Tests/Unit/Core/Database/DatabaseTest.php
View file @
a2df60c1
...
...
@@ -15,6 +15,9 @@ require_once(__DIR__ . '/AbstractDatabaseTest.php');
class
DatabaseTest
extends
AbstractDatabaseTest
{
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testFetchAll
()
{
$allRows
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT * FROM Person ORDER BY id LIMIT 2'
);
...
...
@@ -25,7 +28,9 @@ class DatabaseTest extends AbstractDatabaseTest {
}
/**
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testFetchAllEmpty
()
{
$allRows
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT * FROM Person WHERE id=0 ORDER BY id'
);
...
...
@@ -35,6 +40,7 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testQuerySimple
()
{
...
...
@@ -65,7 +71,7 @@ class DatabaseTest extends AbstractDatabaseTest {
$this
->
assertEquals
(
1
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
// Check read rows
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,groups FROM Person ORDER BY id LIMIT 2'
);
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,
`
groups
`
FROM Person ORDER BY id LIMIT 2'
);
// Check count
$this
->
assertEquals
(
2
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
...
...
@@ -74,7 +80,7 @@ class DatabaseTest extends AbstractDatabaseTest {
// Check rows
// Same as above, but specify 'ROW_REGULAR'
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,groups FROM Person ORDER BY id LIMIT 2'
,
ROW_REGULAR
);
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,
`
groups
`
FROM Person ORDER BY id LIMIT 2'
,
ROW_REGULAR
);
$this
->
assertEquals
(
2
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
// Check rows
$this
->
assertEquals
(
$expected
,
$dataArray
);
...
...
@@ -86,13 +92,13 @@ class DatabaseTest extends AbstractDatabaseTest {
$this
->
assertEquals
(
array
(),
$dataArray
);
// ROW_EXPECT_1
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,groups FROM Person WHERE id=1'
,
ROW_EXPECT_1
);
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,
`
groups
`
FROM Person WHERE id=1'
,
ROW_EXPECT_1
);
$this
->
assertEquals
(
1
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
// Check rows
$this
->
assertEquals
(
$expected
[
0
],
$dataArray
);
// ROW_EXPECT_0_1: 1
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,groups FROM Person WHERE id=1'
,
ROW_EXPECT_0_1
);
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,
`
groups
`
FROM Person WHERE id=1'
,
ROW_EXPECT_0_1
);
$this
->
assertEquals
(
1
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
// Check rows
$this
->
assertEquals
(
$expected
[
0
],
$dataArray
);
...
...
@@ -104,23 +110,23 @@ class DatabaseTest extends AbstractDatabaseTest {
$this
->
assertEquals
(
array
(),
$dataArray
);
//ROW_EXPECT_GE_1 - one record
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,groups FROM Person WHERE id=1'
,
ROW_EXPECT_GE_1
);
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,
`
groups
`
FROM Person WHERE id=1'
,
ROW_EXPECT_GE_1
);
$this
->
assertEquals
(
1
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
// Check rows
$this
->
assertEquals
([
$expected
[
0
]],
$dataArray
);
// ROW_EXPECT_GE_1 - two records
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,groups FROM Person ORDER BY id LIMIT 2'
,
ROW_EXPECT_GE_1
);
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,
`
groups
`
FROM Person ORDER BY id LIMIT 2'
,
ROW_EXPECT_GE_1
);
$this
->
assertEquals
(
2
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
// Check rows
$this
->
assertEquals
(
$expected
,
$dataArray
);
// Check Implode: 2 records
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,groups FROM Person ORDER BY id LIMIT 2'
,
ROW_IMPLODE_ALL
);
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,
`
groups
`
FROM Person ORDER BY id LIMIT 2'
,
ROW_IMPLODE_ALL
);
$this
->
assertEquals
(
implode
(
$expected
[
0
])
.
implode
(
$expected
[
1
]),
$data
);
// Check Implode: 1 record
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,groups FROM Person ORDER BY id LIMIT 1'
,
ROW_IMPLODE_ALL
);
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT id,name,firstName,adrId,gender,
`
groups
`
FROM Person ORDER BY id LIMIT 1'
,
ROW_IMPLODE_ALL
);
$this
->
assertEquals
(
implode
(
$expected
[
0
]),
$data
);
// Check Implode 0 record
...
...
@@ -142,6 +148,7 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testQuerySimpleParameter
()
{
...
...
@@ -153,7 +160,7 @@ class DatabaseTest extends AbstractDatabaseTest {
// Check count
$this
->
assertEquals
(
1
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'UPDATE Person SET groups = ?'
,
ROW_REGULAR
,
[
'a,b,c'
]);
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'UPDATE Person SET
`
groups
`
= ?'
,
ROW_REGULAR
,
[
'a,b,c'
]);
$this
->
assertEquals
(
2
,
$this
->
store
->
getVar
(
SYSTEM_SQL_COUNT
,
STORE_SYSTEM
));
$dataArray
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'INSERT INTO Person (`name`, `firstname`, `groups`) VALUES ( ?, ? ,? )'
,
ROW_REGULAR
,
[
'Meier'
,
'John'
,
'a'
],
'fake'
,
$dummy
,
$stat
);
...
...
@@ -171,6 +178,10 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @expectedException DbException
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSqlExceptionExpect0
()
{
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT * FROM Person ORDER BY id LIMIT 1'
,
ROW_EXPECT_0
);
...
...
@@ -178,6 +189,10 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @expectedException DbException
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSqlExceptionExpect1_0
()
{
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT * FROM Person ORDER BY id LIMIT 0'
,
ROW_EXPECT_1
);
...
...
@@ -185,6 +200,10 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @expectedException DbException
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSqlExceptionExpect1_2
()
{
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT * FROM Person ORDER BY id '
,
ROW_EXPECT_1
);
...
...
@@ -192,6 +211,10 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @expectedException DbException
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSqlExceptionExpect01
()
{
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT * FROM Person ORDER BY id '
,
ROW_EXPECT_0_1
);
...
...
@@ -199,6 +222,10 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @expectedException DbException
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSqlExceptionExpectGE1
()
{
$data
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'SELECT * FROM Person ORDER BY id LIMIT 0'
,
ROW_EXPECT_GE_1
);
...
...
@@ -206,13 +233,34 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @expectedException DbException
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSanitizeException
()
{
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
'some garbage'
);
}
/**
* Check to skip mysqli errno 1060
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSkipErrno
()
{
$dummy
=
array
();
$result
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
"ALTER TABLE `Person` ADD `name` CHAR(16) NOT NULL AFTER `id`"
,
ROW_REGULAR
,
array
(),
''
,
$dummy
,
$dummy
,
[
1060
]);
$this
->
assertEquals
(
'-1'
,
$result
);
}
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testGetSetValueList
()
{
$valueList
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
getEnumSetValueList
(
'Person'
,
'gender'
);
...
...
@@ -225,6 +273,9 @@ class DatabaseTest extends AbstractDatabaseTest {
}
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSelectReturn
()
{
$dummy
=
array
();
...
...
@@ -240,6 +291,9 @@ class DatabaseTest extends AbstractDatabaseTest {
}
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testShowReturn
()
{
$dummy
=
array
();
...
...
@@ -259,6 +313,9 @@ class DatabaseTest extends AbstractDatabaseTest {
}
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testExplainReturn
()
{
$dummy
=
array
();
...
...
@@ -273,12 +330,15 @@ class DatabaseTest extends AbstractDatabaseTest {
}
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testInsertReturn
()
{
$dummy
=
array
();
$stat
=
array
();
$sql
=
"INSERT INTO Person (id, name, firstname, gender, groups) VALUES (NULL, 'Doe', 'Jonni', 'male','')"
;
$sql
=
"INSERT INTO Person (id, name, firstname, gender,
`
groups
`
) VALUES (NULL, 'Doe', 'Jonni', 'male','')"
;
$rc
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
$sql
,
ROW_REGULAR
,
$dummy
,
'fake'
,
$dummy
,
$stat
);
// DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
...
...
@@ -289,12 +349,15 @@ class DatabaseTest extends AbstractDatabaseTest {
}
/**
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testUpdateReturn
()
{
$dummy
=
array
();
$stat
=
array
();
$sql
=
"UPDATE Person SET groups = 'a'"
;
$sql
=
"UPDATE Person SET
`
groups
`
= 'a'"
;
$rc
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
$sql
,
ROW_REGULAR
,
$dummy
,
'fake'
,
$dummy
,
$stat
);
...
...
@@ -305,6 +368,7 @@ class DatabaseTest extends AbstractDatabaseTest {
}
/**
* @throws \Exception
*/
public
function
testDeleteReturn
()
{
$dummy
=
array
();
...
...
@@ -325,6 +389,7 @@ class DatabaseTest extends AbstractDatabaseTest {
/**
* @throws \Exception
*/
public
function
testReplaceReturn
()
{
$dummy
=
array
();
...
...
@@ -332,7 +397,7 @@ class DatabaseTest extends AbstractDatabaseTest {
$this
->
executeSQLFile
(
__DIR__
.
'/fixtures/Generic.sql'
,
true
);
$sql
=
"REPLACE INTO Person (id, name, firstname, gender, groups) VALUES (1, 'Doe', 'John', 'male','')"
;
$sql
=
"REPLACE INTO Person (id, name, firstname, gender,
`
groups
`
) VALUES (1, 'Doe', 'John', 'male','')"
;
$rc
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
$sql
,
ROW_REGULAR
,
$dummy
,
'fake'
,
$dummy
,
$stat
);
// DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
...
...
@@ -342,7 +407,7 @@ class DatabaseTest extends AbstractDatabaseTest {
$this
->
assertEquals
(
1
,
$rc
);
$sql
=
"REPLACE INTO Person (id, name, firstname, gender, groups) VALUES (100, 'Lincoln', 'Abraham', 'male','')"
;
$sql
=
"REPLACE INTO Person (id, name, firstname, gender,
`
groups
`
) VALUES (100, 'Lincoln', 'Abraham', 'male','')"
;
$rc
=
$this
->
dbArray
[
DB_INDEX_DEFAULT
]
->
sql
(
$sql
,
ROW_REGULAR
,
$dummy
,
'fake'
,
$dummy
,
$stat
);
// DB_NUM_ROWS | DB_INSERT_ID | DB_AFFECTED_ROWS
...
...
@@ -371,7 +436,9 @@ class DatabaseTest extends AbstractDatabaseTest {
}
/**
*
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
*/
public
function
testSqlKeys
()
{
$keys
=
array
();
...
...
@@ -461,6 +528,7 @@ class DatabaseTest extends AbstractDatabaseTest {
* @throws \DbException
* @throws \UserFormException
* @throws \UserReportException
* @throws \Exception
*/
protected
function
setUp
()
{
parent
::
setUp
();
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment