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
cf4c715c
Commit
cf4c715c
authored
Jan 05, 2007
by
lsmith
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- s/\$db/\$this->conn
- turned raiseError() calls into throw Exception
parent
67514f4c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
94 additions
and
95 deletions
+94
-95
Mysql.php
lib/Doctrine/Expression/Mysql.php
+92
-92
Pgsql.php
lib/Doctrine/Expression/Pgsql.php
+2
-3
No files found.
lib/Doctrine/Expression/Mysql.php
View file @
cf4c715c
<?php
/*
* $Id$
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_Expression'
);
/**
* Doctrine_Expression_Mysql
*
* @package Doctrine
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @category Object Relational Mapping
* @link www.phpdoctrine.com
* @since 1.0
* @version $Revision$
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
*/
class
Doctrine_Expression_Mysql
extends
Doctrine_Expression
{
/**
* returns the regular expression operator
*
* @return string
*/
public
function
regexp
()
{
return
'RLIKE'
;
}
/**
* build a pattern matching string
*
* EXPERIMENTAL
*
* WARNING: this function is experimental and may change signature at
* any time until labelled as non-experimental
*
* @access public
*
* @param array $pattern even keys are strings, odd are patterns (% and _)
* @param string $operator optional pattern operator (LIKE, ILIKE and maybe others in the future)
* @param string $field optional field name that is being matched against
* (might be required when emulating ILIKE)
*
* @return string SQL pattern
*/
public
function
matchPattern
(
$pattern
,
$operator
=
null
,
$field
=
null
)
{
$match
=
''
;
if
(
!
is_null
(
$operator
))
{
$field
=
is_null
(
$field
)
?
''
:
$field
.
' '
;
$operator
=
strtoupper
(
$operator
);
switch
(
$operator
)
{
// case insensitive
case
'ILIKE'
:
$match
=
$field
.
'LIKE '
;
break
;
// case sensitive
case
'LIKE'
:
$match
=
$field
.
'LIKE BINARY '
;
break
;
default
:
throw
new
Doctrine_Expression_Mysql_Exception
(
'not a supported operator type:'
.
$operator
);
}
}
$match
.=
"'"
;
foreach
(
$pattern
as
$key
=>
$value
)
{
if
(
$key
%
2
)
{
$match
.=
$value
;
}
else
{
$match
.=
$
db
->
escapePattern
(
$db
->
escape
(
$value
));
}
}
$match
.=
"'"
;
$match
.=
$this
->
patternEscapeString
();
return
$match
;
}
}
<?php
/*
* $Id$
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
*/
Doctrine
::
autoload
(
'Doctrine_Expression'
);
/**
* Doctrine_Expression_Mysql
*
* @package Doctrine
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @category Object Relational Mapping
* @link www.phpdoctrine.com
* @since 1.0
* @version $Revision$
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
*/
class
Doctrine_Expression_Mysql
extends
Doctrine_Expression
{
/**
* returns the regular expression operator
*
* @return string
*/
public
function
regexp
()
{
return
'RLIKE'
;
}
/**
* build a pattern matching string
*
* EXPERIMENTAL
*
* WARNING: this function is experimental and may change signature at
* any time until labelled as non-experimental
*
* @access public
*
* @param array $pattern even keys are strings, odd are patterns (% and _)
* @param string $operator optional pattern operator (LIKE, ILIKE and maybe others in the future)
* @param string $field optional field name that is being matched against
* (might be required when emulating ILIKE)
*
* @return string SQL pattern
*/
public
function
matchPattern
(
$pattern
,
$operator
=
null
,
$field
=
null
)
{
$match
=
''
;
if
(
!
is_null
(
$operator
))
{
$field
=
is_null
(
$field
)
?
''
:
$field
.
' '
;
$operator
=
strtoupper
(
$operator
);
switch
(
$operator
)
{
// case insensitive
case
'ILIKE'
:
$match
=
$field
.
'LIKE '
;
break
;
// case sensitive
case
'LIKE'
:
$match
=
$field
.
'LIKE BINARY '
;
break
;
default
:
throw
new
Doctrine_Expression_Mysql_Exception
(
'not a supported operator type:'
.
$operator
);
}
}
$match
.=
"'"
;
foreach
(
$pattern
as
$key
=>
$value
)
{
if
(
$key
%
2
)
{
$match
.=
$value
;
}
else
{
$match
.=
$
this
->
conn
->
escapePattern
(
$this
->
conn
->
escape
(
$value
));
}
}
$match
.=
"'"
;
$match
.=
$this
->
patternEscapeString
();
return
$match
;
}
}
lib/Doctrine/Expression/Pgsql.php
View file @
cf4c715c
...
...
@@ -151,8 +151,7 @@ class Doctrine_Expression_Pgsql extends Doctrine_Expression
$match
=
$field
.
'LIKE '
;
break
;
default
:
return
$db
->
raiseError
(
MDB2_ERROR_UNSUPPORTED
,
null
,
null
,
'not a supported operator type:'
.
$operator
,
__FUNCTION__
);
throw
new
Doctrine_Expression_Pgsql_Exception
(
'not a supported operator type:'
.
$operator
);
}
}
$match
.=
"'"
;
...
...
@@ -160,7 +159,7 @@ class Doctrine_Expression_Pgsql extends Doctrine_Expression
if
(
$key
%
2
)
{
$match
.=
$value
;
}
else
{
$match
.=
$
db
->
escapePattern
(
$db
->
escape
(
$value
));
$match
.=
$
this
->
conn
->
escapePattern
(
$this
->
conn
->
escape
(
$value
));
}
}
$match
.=
"'"
;
...
...
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