Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
13df030b
Unverified
Commit
13df030b
authored
Oct 24, 2018
by
Sergei Morozov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed quoting of string literals containing backslash
parent
c0195cde
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
46 additions
and
36 deletions
+46
-36
OraclePlatform.php
lib/Doctrine/DBAL/Platforms/OraclePlatform.php
+0
-11
PostgreSqlPlatform.php
lib/Doctrine/DBAL/Platforms/PostgreSqlPlatform.php
+0
-11
QuotingTest.php
...s/Doctrine/Tests/DBAL/Functional/Platform/QuotingTest.php
+32
-0
AbstractPostgreSqlPlatformTestCase.php
...sts/DBAL/Platforms/AbstractPostgreSqlPlatformTestCase.php
+8
-8
OraclePlatformTest.php
tests/Doctrine/Tests/DBAL/Platforms/OraclePlatformTest.php
+6
-6
No files found.
lib/Doctrine/DBAL/Platforms/OraclePlatform.php
View file @
13df030b
...
@@ -36,7 +36,6 @@ use function func_num_args;
...
@@ -36,7 +36,6 @@ use function func_num_args;
use
function
implode
;
use
function
implode
;
use
function
preg_match
;
use
function
preg_match
;
use
function
sprintf
;
use
function
sprintf
;
use
function
str_replace
;
use
function
strlen
;
use
function
strlen
;
use
function
strpos
;
use
function
strpos
;
use
function
strtoupper
;
use
function
strtoupper
;
...
@@ -1180,14 +1179,4 @@ END;';
...
@@ -1180,14 +1179,4 @@ END;';
{
{
return
'BLOB'
;
return
'BLOB'
;
}
}
/**
* {@inheritdoc}
*/
public
function
quoteStringLiteral
(
$str
)
{
$str
=
str_replace
(
'\\'
,
'\\\\'
,
$str
);
// Oracle requires backslashes to be escaped aswell.
return
parent
::
quoteStringLiteral
(
$str
);
}
}
}
lib/Doctrine/DBAL/Platforms/PostgreSqlPlatform.php
View file @
13df030b
...
@@ -42,7 +42,6 @@ use function is_array;
...
@@ -42,7 +42,6 @@ use function is_array;
use
function
is_bool
;
use
function
is_bool
;
use
function
is_numeric
;
use
function
is_numeric
;
use
function
is_string
;
use
function
is_string
;
use
function
str_replace
;
use
function
strpos
;
use
function
strpos
;
use
function
strtolower
;
use
function
strtolower
;
use
function
trim
;
use
function
trim
;
...
@@ -1205,16 +1204,6 @@ class PostgreSqlPlatform extends AbstractPlatform
...
@@ -1205,16 +1204,6 @@ class PostgreSqlPlatform extends AbstractPlatform
return
'BYTEA'
;
return
'BYTEA'
;
}
}
/**
* {@inheritdoc}
*/
public
function
quoteStringLiteral
(
$str
)
{
$str
=
str_replace
(
'\\'
,
'\\\\'
,
$str
);
// PostgreSQL requires backslashes to be escaped aswell.
return
parent
::
quoteStringLiteral
(
$str
);
}
/**
/**
* {@inheritdoc}
* {@inheritdoc}
*/
*/
...
...
tests/Doctrine/Tests/DBAL/Functional/Platform/QuotingTest.php
0 → 100644
View file @
13df030b
<?php
namespace
Doctrine\Tests\DBAL\Functional\Platform
;
use
Doctrine\Tests\DbalFunctionalTestCase
;
class
QuotingTest
extends
DbalFunctionalTestCase
{
/**
* @dataProvider stringLiteralProvider
*/
public
function
testQuoteStringLiteral
(
string
$string
)
:
void
{
$platform
=
$this
->
_conn
->
getDatabasePlatform
();
$query
=
$platform
->
getDummySelectSQL
(
$platform
->
quoteStringLiteral
(
$string
)
);
self
::
assertSame
(
$string
,
$this
->
_conn
->
fetchColumn
(
$query
));
}
/**
* @return mixed[][]
*/
public
static
function
stringLiteralProvider
()
:
iterable
{
return
[
'backslash'
=>
[
'\\'
],
'single-quote'
=>
[
"'"
],
];
}
}
tests/Doctrine/Tests/DBAL/Platforms/AbstractPostgreSqlPlatformTestCase.php
View file @
13df030b
...
@@ -922,7 +922,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
...
@@ -922,7 +922,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
*/
*/
public
function
testQuotesTableNameInListTableForeignKeysSQL
()
public
function
testQuotesTableNameInListTableForeignKeysSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableForeignKeysSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableForeignKeysSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -931,7 +931,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
...
@@ -931,7 +931,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
public
function
testQuotesSchemaNameInListTableForeignKeysSQL
()
public
function
testQuotesSchemaNameInListTableForeignKeysSQL
()
{
{
self
::
assertContains
(
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableForeignKeysSQL
(
"Foo'Bar
\\
.baz_table"
),
$this
->
_platform
->
getListTableForeignKeysSQL
(
"Foo'Bar
\\
.baz_table"
),
''
,
''
,
true
true
...
@@ -943,7 +943,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
...
@@ -943,7 +943,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
*/
*/
public
function
testQuotesTableNameInListTableConstraintsSQL
()
public
function
testQuotesTableNameInListTableConstraintsSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableConstraintsSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableConstraintsSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -951,7 +951,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
...
@@ -951,7 +951,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
*/
*/
public
function
testQuotesTableNameInListTableIndexesSQL
()
public
function
testQuotesTableNameInListTableIndexesSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableIndexesSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableIndexesSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -960,7 +960,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
...
@@ -960,7 +960,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
public
function
testQuotesSchemaNameInListTableIndexesSQL
()
public
function
testQuotesSchemaNameInListTableIndexesSQL
()
{
{
self
::
assertContains
(
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableIndexesSQL
(
"Foo'Bar
\\
.baz_table"
),
$this
->
_platform
->
getListTableIndexesSQL
(
"Foo'Bar
\\
.baz_table"
),
''
,
''
,
true
true
...
@@ -972,7 +972,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
...
@@ -972,7 +972,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
*/
*/
public
function
testQuotesTableNameInListTableColumnsSQL
()
public
function
testQuotesTableNameInListTableColumnsSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableColumnsSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableColumnsSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -981,7 +981,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
...
@@ -981,7 +981,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
public
function
testQuotesSchemaNameInListTableColumnsSQL
()
public
function
testQuotesSchemaNameInListTableColumnsSQL
()
{
{
self
::
assertContains
(
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableColumnsSQL
(
"Foo'Bar
\\
.baz_table"
),
$this
->
_platform
->
getListTableColumnsSQL
(
"Foo'Bar
\\
.baz_table"
),
''
,
''
,
true
true
...
@@ -994,7 +994,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
...
@@ -994,7 +994,7 @@ abstract class AbstractPostgreSqlPlatformTestCase extends AbstractPlatformTestCa
public
function
testQuotesDatabaseNameInCloseActiveDatabaseConnectionsSQL
()
public
function
testQuotesDatabaseNameInCloseActiveDatabaseConnectionsSQL
()
{
{
self
::
assertContains
(
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getCloseActiveDatabaseConnectionsSQL
(
"Foo'Bar
\\
"
),
$this
->
_platform
->
getCloseActiveDatabaseConnectionsSQL
(
"Foo'Bar
\\
"
),
''
,
''
,
true
true
...
...
tests/Doctrine/Tests/DBAL/Platforms/OraclePlatformTest.php
View file @
13df030b
...
@@ -845,7 +845,7 @@ EOD;
...
@@ -845,7 +845,7 @@ EOD;
*/
*/
public
function
testQuotesDatabaseNameInListSequencesSQL
()
public
function
testQuotesDatabaseNameInListSequencesSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListSequencesSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListSequencesSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -853,7 +853,7 @@ EOD;
...
@@ -853,7 +853,7 @@ EOD;
*/
*/
public
function
testQuotesTableNameInListTableIndexesSQL
()
public
function
testQuotesTableNameInListTableIndexesSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableIndexesSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableIndexesSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -861,7 +861,7 @@ EOD;
...
@@ -861,7 +861,7 @@ EOD;
*/
*/
public
function
testQuotesTableNameInListTableForeignKeysSQL
()
public
function
testQuotesTableNameInListTableForeignKeysSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableForeignKeysSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableForeignKeysSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -869,7 +869,7 @@ EOD;
...
@@ -869,7 +869,7 @@ EOD;
*/
*/
public
function
testQuotesTableNameInListTableConstraintsSQL
()
public
function
testQuotesTableNameInListTableConstraintsSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableConstraintsSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableConstraintsSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -877,7 +877,7 @@ EOD;
...
@@ -877,7 +877,7 @@ EOD;
*/
*/
public
function
testQuotesTableNameInListTableColumnsSQL
()
public
function
testQuotesTableNameInListTableColumnsSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableColumnsSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableColumnsSQL
(
"Foo'Bar
\\
"
),
''
,
true
);
}
}
/**
/**
...
@@ -885,6 +885,6 @@ EOD;
...
@@ -885,6 +885,6 @@ EOD;
*/
*/
public
function
testQuotesDatabaseNameInListTableColumnsSQL
()
public
function
testQuotesDatabaseNameInListTableColumnsSQL
()
{
{
self
::
assertContains
(
"'Foo''Bar
\\
\\
'"
,
$this
->
_platform
->
getListTableColumnsSQL
(
'foo_table'
,
"Foo'Bar
\\
"
),
''
,
true
);
self
::
assertContains
(
"'Foo''Bar
\\
'"
,
$this
->
_platform
->
getListTableColumnsSQL
(
'foo_table'
,
"Foo'Bar
\\
"
),
''
,
true
);
}
}
}
}
Write
Preview
Markdown
is supported
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