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
6fa2b941
Commit
6fa2b941
authored
Feb 06, 2012
by
Benjamin Eberlei
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #110 from doctrine/DBAL-216
[DBAL-216] Add Sqlsrv as driver
parents
a62df738
4c300758
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
556 additions
and
25 deletions
+556
-25
Driver.php
lib/Doctrine/DBAL/Driver/PDOSqlsrv/Driver.php
+0
-1
Driver.php
lib/Doctrine/DBAL/Driver/SQLSrv/Driver.php
+70
-0
SQLSrvConnection.php
lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvConnection.php
+151
-0
SQLSrvException.php
lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvException.php
+43
-0
SQLSrvStatement.php
lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvStatement.php
+225
-0
DriverManager.php
lib/Doctrine/DBAL/DriverManager.php
+12
-2
Connection.php
lib/Doctrine/DBAL/Portability/Connection.php
+3
-0
SQLServerSchemaManager.php
lib/Doctrine/DBAL/Schema/SQLServerSchemaManager.php
+0
-1
DateTimeType.php
lib/Doctrine/DBAL/Types/DateTimeType.php
+3
-3
DateTimeTzType.php
lib/Doctrine/DBAL/Types/DateTimeTzType.php
+3
-3
DateType.php
lib/Doctrine/DBAL/Types/DateType.php
+3
-3
TimeType.php
lib/Doctrine/DBAL/Types/TimeType.php
+3
-3
VarDateTimeType.php
lib/Doctrine/DBAL/Types/VarDateTimeType.php
+3
-3
DataAccessTest.php
tests/Doctrine/Tests/DBAL/Functional/DataAccessTest.php
+1
-1
SchemaManagerFunctionalTestCase.php
...BAL/Functional/Schema/SchemaManagerFunctionalTestCase.php
+1
-0
DateTest.php
tests/Doctrine/Tests/DBAL/Types/DateTest.php
+7
-1
DateTimeTest.php
tests/Doctrine/Tests/DBAL/Types/DateTimeTest.php
+7
-1
DateTimeTzTest.php
tests/Doctrine/Tests/DBAL/Types/DateTimeTzTest.php
+7
-1
TimeTest.php
tests/Doctrine/Tests/DBAL/Types/TimeTest.php
+7
-1
VarDateTimeTest.php
tests/Doctrine/Tests/DBAL/Types/VarDateTimeTest.php
+7
-1
No files found.
lib/Doctrine/DBAL/Driver/PDOSqlsrv/Driver.php
View file @
6fa2b941
...
...
@@ -60,7 +60,6 @@ class Driver implements \Doctrine\DBAL\Driver
return
$dsn
;
}
public
function
getDatabasePlatform
()
{
return
new
\Doctrine\DBAL\Platforms\SQLServer2008Platform
();
...
...
lib/Doctrine/DBAL/Driver/SQLSrv/Driver.php
0 → 100644
View file @
6fa2b941
<?php
/*
* 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.doctrine-project.org>.
*/
namespace
Doctrine\DBAL\Driver\SQLSrv
;
/**
* Driver for ext/sqlsrv
*/
class
Driver
implements
\Doctrine\DBAL\Driver
{
public
function
connect
(
array
$params
,
$username
=
null
,
$password
=
null
,
array
$driverOptions
=
array
())
{
if
(
!
isset
(
$params
[
'host'
]))
{
throw
new
SQLSrvException
(
"Missing 'host' in configuration for sqlsrv driver."
);
}
$serverName
=
$params
[
'host'
];
if
(
isset
(
$params
[
'port'
]))
{
$serverName
.=
', '
.
$params
[
'port'
];
}
if
(
!
isset
(
$params
[
'dbname'
]))
{
throw
new
SQLSrvException
(
"Missing 'dbname' in configuration for sqlsrv driver."
);
}
$driverOptions
[
'Database'
]
=
$params
[
'dbname'
];
$driverOptions
[
'UID'
]
=
$username
;
$driverOptions
[
'PWD'
]
=
$password
;
if
(
!
isset
(
$driverOptions
[
'ReturnDatesAsStrings'
]))
{
$driverOptions
[
'ReturnDatesAsStrings'
]
=
1
;
}
return
new
SQLSrvConnection
(
$serverName
,
$driverOptions
);
}
public
function
getDatabasePlatform
()
{
return
new
\Doctrine\DBAL\Platforms\SQLServer2008Platform
();
}
public
function
getSchemaManager
(
\Doctrine\DBAL\Connection
$conn
)
{
return
new
\Doctrine\DBAL\Schema\SQLServerSchemaManager
(
$conn
);
}
public
function
getName
()
{
return
'sqlsrv'
;
}
public
function
getDatabase
(
\Doctrine\DBAL\Connection
$conn
)
{
$params
=
$conn
->
getParams
();
return
$params
[
'dbname'
];
}
}
lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvConnection.php
0 → 100644
View file @
6fa2b941
<?php
/*
* 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.doctrine-project.org>.
*/
namespace
Doctrine\DBAL\Driver\SQLSrv
;
/**
* SQL Server implementation for the Connection interface.
*
* @since 2.3
* @author Benjamin Eberlei <kontakt@beberlei.de>
*/
class
SQLSrvConnection
implements
\Doctrine\DBAL\Driver\Connection
{
protected
$conn
;
public
function
__construct
(
$serverName
,
$connectionOptions
)
{
$this
->
conn
=
sqlsrv_connect
(
$serverName
,
$connectionOptions
);
if
(
!
$this
->
conn
)
{
throw
SQLSrvException
::
fromSqlSrvErrors
();
}
}
/**
* {@inheritDoc}
*/
public
function
prepare
(
$sql
)
{
return
new
SQLSrvStatement
(
$this
->
conn
,
$sql
);
}
/**
* {@inheritDoc}
*/
public
function
query
()
{
$args
=
func_get_args
();
$sql
=
$args
[
0
];
$stmt
=
$this
->
prepare
(
$sql
);
$stmt
->
execute
();
return
$stmt
;
}
/**
* {@inheritDoc}
* @license New BSD, code from Zend Framework
*/
public
function
quote
(
$value
,
$type
=
\PDO
::
PARAM_STR
)
{
if
(
is_int
(
$value
))
{
return
$value
;
}
else
if
(
is_float
(
$value
))
{
return
sprintf
(
'%F'
,
$value
);
}
return
"'"
.
str_replace
(
"'"
,
"''"
,
$value
)
.
"'"
;
}
/**
* {@inheritDoc}
*/
public
function
exec
(
$statement
)
{
$stmt
=
$this
->
prepare
(
$statement
);
$stmt
->
execute
();
return
$stmt
->
rowCount
();
}
/**
* {@inheritDoc}
*/
public
function
lastInsertId
(
$name
=
null
)
{
if
(
$name
===
null
)
{
$sql
=
"SELECT SCOPE_IDENTITY() AS LastInsertId"
;
}
else
{
$sql
=
"SELECT IDENT_CURRENT("
.
$this
->
quote
(
$name
)
.
") AS LastInsertId"
;
}
$stmt
=
$this
->
prepare
(
$sql
);
$stmt
->
execute
();
return
$stmt
->
fetchColumn
();
}
/**
* {@inheritDoc}
*/
public
function
beginTransaction
()
{
if
(
!
sqlsrv_begin_transaction
(
$this
->
conn
))
{
throw
SQLSrvException
::
fromSqlSrvErrors
();
}
}
/**
* {@inheritDoc}
*/
public
function
commit
()
{
if
(
!
sqlsrv_commit
(
$this
->
conn
))
{
throw
SQLSrvException
::
fromSqlSrvErrors
();
}
}
/**
* {@inheritDoc}
*/
public
function
rollBack
()
{
if
(
!
sqlsrv_rollback
(
$this
->
conn
))
{
throw
SQLSrvException
::
fromSqlSrvErrors
();
}
}
/**
* {@inheritDoc}
*/
public
function
errorCode
()
{
$errors
=
sqlsrv_errors
(
SQLSRV_ERR_ERRORS
);
if
(
$errors
)
{
return
$errors
[
0
][
'code'
];
}
return
false
;
}
/**
* {@inheritDoc}
*/
public
function
errorInfo
()
{
return
sqlsrv_errors
(
SQLSRV_ERR_ERRORS
);
}
}
lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvException.php
0 → 100644
View file @
6fa2b941
<?php
/*
* 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.doctrine-project.org>.
*/
namespace
Doctrine\DBAL\Driver\SQLSrv
;
class
SQLSrvException
extends
\Doctrine\DBAL\DBALException
{
/**
* Helper method to turn sql server errors into exception.
*
* @return SQLSrvException
*/
static
public
function
fromSqlSrvErrors
()
{
$errors
=
sqlsrv_errors
(
SQLSRV_ERR_ERRORS
);
$message
=
""
;
foreach
(
$errors
as
$error
)
{
$message
.=
"SQLSTATE ["
.
$error
[
'SQLSTATE'
]
.
", "
.
$error
[
'code'
]
.
"]: "
.
$error
[
'message'
]
.
"
\n
"
;
}
if
(
!
$message
)
{
$message
=
"SQL Server error occured but no error message was retrieved from driver."
;
}
return
new
self
(
rtrim
(
$message
));
}
}
lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvStatement.php
0 → 100644
View file @
6fa2b941
<?php
/*
* 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.doctrine-project.org>.
*/
namespace
Doctrine\DBAL\Driver\SQLSrv
;
use
PDO
;
use
IteratorAggregate
;
use
Doctrine\DBAL\Driver\Statement
;
class
SQLSrvStatement
implements
IteratorAggregate
,
Statement
{
/**
* SQLSRV Resource
*
* @var resource
*/
private
$conn
;
/**
* SQL Statement to execute
*
* @var string
*/
private
$sql
;
/**
* SQLSRV Statement Resource
*
* @var resource
*/
private
$stmt
;
/**
* Parameters to bind
*
* @var array
*/
private
$params
=
array
();
/**
* Translations
*
* @var array
*/
private
static
$fetchMap
=
array
(
PDO
::
FETCH_BOTH
=>
SQLSRV_FETCH_BOTH
,
PDO
::
FETCH_ASSOC
=>
SQLSRV_FETCH_ASSOC
,
PDO
::
FETCH_NUM
=>
SQLSRV_FETCH_NUMERIC
,
);
/**
* Fetch Style
*
* @param int
*/
private
$defaultFetchStyle
=
PDO
::
FETCH_BOTH
;
public
function
__construct
(
$conn
,
$sql
)
{
$this
->
conn
=
$conn
;
$this
->
sql
=
$sql
;
}
public
function
bindValue
(
$param
,
$value
,
$type
=
null
)
{
return
$this
->
bindParam
(
$param
,
$value
,
$type
);
}
/**
* {@inheritdoc}
*/
public
function
bindParam
(
$column
,
&
$variable
,
$type
=
null
)
{
if
(
!
is_numeric
(
$column
))
{
throw
new
SQLSrvException
(
"sqlsrv does not support named parameters to queries, use question mark (?) placeholders instead."
);
}
if
(
$type
===
\PDO
::
PARAM_LOB
)
{
$this
->
params
[
$column
-
1
]
=
array
(
$variable
,
SQLSRV_PARAM_IN
,
SQLSRV_PHPTYPE_STREAM
(
SQLSRV_ENC_BINARY
),
SQLSRV_SQLTYPE_VARBINARY
(
'max'
));
}
else
{
$this
->
params
[
$column
-
1
]
=
$variable
;
}
}
public
function
closeCursor
()
{
if
(
$this
->
stmt
)
{
sqlsrv_free_stmt
(
$this
->
stmt
);
}
}
public
function
columnCount
()
{
return
sqlsrv_num_fields
(
$this
->
stmt
);
}
/**
* {@inheritDoc}
*/
public
function
errorCode
()
{
$errors
=
sqlsrv_errors
(
SQLSRV_ERR_ERRORS
);
if
(
$errors
)
{
return
$errors
[
0
][
'code'
];
}
return
false
;
}
/**
* {@inheritDoc}
*/
public
function
errorInfo
()
{
return
sqlsrv_errors
(
SQLSRV_ERR_ERRORS
);
}
public
function
execute
(
$params
=
null
)
{
if
(
$params
)
{
$hasZeroIndex
=
array_key_exists
(
0
,
$params
);
foreach
(
$params
as
$key
=>
$val
)
{
if
(
$hasZeroIndex
&&
is_numeric
(
$key
))
{
$this
->
bindValue
(
$key
+
1
,
$val
);
}
else
{
$this
->
bindValue
(
$key
,
$val
);
}
}
}
$this
->
stmt
=
sqlsrv_query
(
$this
->
conn
,
$this
->
sql
,
$this
->
params
);
if
(
!
$this
->
stmt
)
{
throw
SQLSrvException
::
fromSqlSrvErrors
();
}
}
public
function
setFetchMode
(
$fetchStyle
=
PDO
::
FETCH_BOTH
)
{
$this
->
defaultFetchStyle
=
$fetchStyle
;
}
/**
* {@inheritdoc}
*/
public
function
getIterator
()
{
$data
=
$this
->
fetchAll
(
$this
->
defaultFetchStyle
);
return
new
\ArrayIterator
(
$data
);
}
/**
* {@inheritdoc}
*/
public
function
fetch
(
$fetchStyle
=
null
)
{
$fetchStyle
=
(
$fetchStyle
)
?:
$this
->
defaultFetchStyle
;
if
(
isset
(
self
::
$fetchMap
[
$fetchStyle
]))
{
return
sqlsrv_fetch_array
(
$this
->
stmt
,
self
::
$fetchMap
[
$fetchStyle
]);
}
else
if
(
$fetchStyle
==
PDO
::
FETCH_OBJ
||
$fetchStyle
==
PDO
::
FETCH_CLASS
)
{
$className
=
null
;
$ctorArgs
=
null
;
if
(
func_num_args
()
>=
2
)
{
$args
=
func_get_args
();
$className
=
$args
[
1
];
$ctorArgs
=
(
isset
(
$args
[
2
]))
?
$args
[
2
]
:
array
();
}
return
sqlsrv_fetch_object
(
$this
->
stmt
,
$className
,
$ctorArgs
);
}
else
{
throw
new
SQLSrvException
(
"Fetch mode is not supported!"
);
}
}
/**
* {@inheritdoc}
*/
public
function
fetchAll
(
$fetchStyle
=
null
)
{
$className
=
null
;
$ctorArgs
=
null
;
if
(
func_num_args
()
>=
2
)
{
$args
=
func_get_args
();
$className
=
$args
[
1
];
$ctorArgs
=
(
isset
(
$args
[
2
]))
?
$args
[
2
]
:
array
();
}
$rows
=
array
();
while
(
$row
=
$this
->
fetch
(
$fetchStyle
,
$className
,
$ctorArgs
))
{
$rows
[]
=
$row
;
}
return
$rows
;
}
/**
* {@inheritdoc}
*/
public
function
fetchColumn
(
$columnIndex
=
0
)
{
$row
=
$this
->
fetch
(
PDO
::
FETCH_NUM
);
return
$row
[
$columnIndex
];
}
/**
* {@inheritdoc}
*/
public
function
rowCount
()
{
return
sqlsrv_rows_affected
(
$this
->
stmt
);
}
}
lib/Doctrine/DBAL/DriverManager.php
View file @
6fa2b941
...
...
@@ -32,8 +32,10 @@ final class DriverManager
/**
* List of supported drivers and their mappings to the driver classes.
*
* To add your own driver use the 'driverClass' parameter to
* {@link DriverManager::getConnection()}.
*
* @var array
* @todo REMOVE. Users should directly supply class names instead.
*/
private
static
$_driverMap
=
array
(
'pdo_mysql'
=>
'Doctrine\DBAL\Driver\PDOMySql\Driver'
,
...
...
@@ -46,6 +48,7 @@ final class DriverManager
'pdo_sqlsrv'
=>
'Doctrine\DBAL\Driver\PDOSqlsrv\Driver'
,
'mysqli'
=>
'Doctrine\DBAL\Driver\Mysqli\Driver'
,
'drizzle_pdo_mysql'
=>
'Doctrine\DBAL\Driver\DrizzlePDOMySql\Driver'
,
'sqlsrv'
=>
'Doctrine\DBAL\Driver\SQLSrv\Driver'
,
);
/** Private constructor. This class cannot be instantiated. */
...
...
@@ -59,11 +62,18 @@ final class DriverManager
* $params must contain at least one of the following.
*
* Either 'driver' with one of the following values:
*
* pdo_mysql
* pdo_sqlite
* pdo_pgsql
* pdo_oracle
* pdo_oci (unstable)
* pdo_sqlsrv
* pdo_ibm (unstable)
* pdo_sqlsrv
* mysqli
* sqlsrv
* ibm_db2 (unstable)
* drizzle_pdo_mysql
*
* OR 'driverClass' that contains the full class name (with namespace) of the
* driver class to instantiate.
...
...
lib/Doctrine/DBAL/Portability/Connection.php
View file @
6fa2b941
...
...
@@ -38,6 +38,7 @@ class Connection extends \Doctrine\DBAL\Connection
const
PORTABILITY_SQLITE
=
13
;
const
PORTABILITY_OTHERVENDORS
=
12
;
const
PORTABILITY_DRIZZLE
=
13
;
const
PORTABILITY_SQLSRV
=
13
;
/**
* @var int
...
...
@@ -63,6 +64,8 @@ class Connection extends \Doctrine\DBAL\Connection
$params
[
'portability'
]
=
$params
[
'portability'
]
&
self
::
PORTABILITY_SQLITE
;
}
else
if
(
$this
->
_platform
->
getName
()
===
"drizzle"
)
{
$params
[
'portability'
]
=
self
::
PORTABILITY_DRIZZLE
;
}
else
if
(
$this
->
_platform
->
getName
()
===
'sqlsrv'
)
{
$params
[
'portaility'
]
=
$params
[
'portabililty'
]
&
self
::
PORTABILITY_SQLSRV
;
}
else
{
$params
[
'portability'
]
=
$params
[
'portability'
]
&
self
::
PORTABILITY_OTHERVENDORS
;
}
...
...
lib/Doctrine/DBAL/Schema/SQLServerSchemaManager.php
View file @
6fa2b941
...
...
@@ -21,7 +21,6 @@ namespace Doctrine\DBAL\Schema;
use
Doctrine\DBAL\Events
;
use
Doctrine\DBAL\Event\SchemaIndexDefinitionEventArgs
;
use
Doctrine\DBAL\Events
;
/**
* SQL Server Schema Manager
...
...
lib/Doctrine/DBAL/Types/DateTimeType.php
View file @
6fa2b941
...
...
@@ -46,8 +46,8 @@ class DateTimeType extends Type
public
function
convertToPHPValue
(
$value
,
AbstractPlatform
$platform
)
{
if
(
$value
===
null
)
{
return
null
;
if
(
$value
===
null
||
$value
instanceof
\DateTime
)
{
return
$value
;
}
$val
=
\DateTime
::
createFromFormat
(
$platform
->
getDateTimeFormatString
(),
$value
);
...
...
@@ -56,4 +56,4 @@ class DateTimeType extends Type
}
return
$val
;
}
}
\ No newline at end of file
}
lib/Doctrine/DBAL/Types/DateTimeTzType.php
View file @
6fa2b941
...
...
@@ -66,8 +66,8 @@ class DateTimeTzType extends Type
public
function
convertToPHPValue
(
$value
,
AbstractPlatform
$platform
)
{
if
(
$value
===
null
)
{
return
null
;
if
(
$value
===
null
||
$value
instanceof
\DateTime
)
{
return
$value
;
}
$val
=
\DateTime
::
createFromFormat
(
$platform
->
getDateTimeTzFormatString
(),
$value
);
...
...
@@ -76,4 +76,4 @@ class DateTimeTzType extends Type
}
return
$val
;
}
}
\ No newline at end of file
}
lib/Doctrine/DBAL/Types/DateType.php
View file @
6fa2b941
...
...
@@ -46,8 +46,8 @@ class DateType extends Type
public
function
convertToPHPValue
(
$value
,
AbstractPlatform
$platform
)
{
if
(
$value
===
null
)
{
return
null
;
if
(
$value
===
null
||
$value
instanceof
\DateTime
)
{
return
$value
;
}
$val
=
\DateTime
::
createFromFormat
(
'!'
.
$platform
->
getDateFormatString
(),
$value
);
...
...
@@ -56,4 +56,4 @@ class DateType extends Type
}
return
$val
;
}
}
\ No newline at end of file
}
lib/Doctrine/DBAL/Types/TimeType.php
View file @
6fa2b941
...
...
@@ -55,8 +55,8 @@ class TimeType extends Type
*/
public
function
convertToPHPValue
(
$value
,
AbstractPlatform
$platform
)
{
if
(
$value
===
null
)
{
return
null
;
if
(
$value
===
null
||
$value
instanceof
\DateTime
)
{
return
$value
;
}
$val
=
\DateTime
::
createFromFormat
(
$platform
->
getTimeFormatString
(),
$value
);
...
...
@@ -65,4 +65,4 @@ class TimeType extends Type
}
return
$val
;
}
}
\ No newline at end of file
}
lib/Doctrine/DBAL/Types/VarDateTimeType.php
View file @
6fa2b941
...
...
@@ -47,8 +47,8 @@ class VarDateTimeType extends DateTimeType
*/
public
function
convertToPHPValue
(
$value
,
AbstractPlatform
$platform
)
{
if
(
$value
===
null
)
{
return
null
;
if
(
$value
===
null
||
$value
instanceof
\DateTime
)
{
return
$value
;
}
$val
=
date_create
(
$value
);
...
...
@@ -57,4 +57,4 @@ class VarDateTimeType extends DateTimeType
}
return
$val
;
}
}
\ No newline at end of file
}
tests/Doctrine/Tests/DBAL/Functional/DataAccessTest.php
View file @
6fa2b941
...
...
@@ -411,7 +411,7 @@ class DataAccessTest extends \Doctrine\Tests\DbalFunctionalTestCase
$this
->
assertEquals
(
1
,
$results
[
0
]
->
test_int
);
$this
->
assertEquals
(
'foo'
,
$results
[
0
]
->
test_string
);
$this
->
assert
Equals
(
'2010-01-01 10:10:10'
,
$results
[
0
]
->
test_datetime
);
$this
->
assert
StringStartsWith
(
'2010-01-01 10:10:10'
,
$results
[
0
]
->
test_datetime
);
}
}
...
...
tests/Doctrine/Tests/DBAL/Functional/Schema/SchemaManagerFunctionalTestCase.php
View file @
6fa2b941
...
...
@@ -125,6 +125,7 @@ class SchemaManagerFunctionalTestCase extends \Doctrine\Tests\DbalFunctionalTest
$table
->
addColumn
(
'baz1'
,
'datetime'
);
$table
->
addColumn
(
'baz2'
,
'time'
);
$table
->
addColumn
(
'baz3'
,
'date'
);
$table
->
setPrimaryKey
(
array
(
'id'
));
return
$table
;
}
...
...
tests/Doctrine/Tests/DBAL/Types/DateTest.php
View file @
6fa2b941
...
...
@@ -72,4 +72,10 @@ class DateTest extends \Doctrine\Tests\DbalTestCase
{
$this
->
assertNull
(
$this
->
_type
->
convertToPHPValue
(
null
,
$this
->
_platform
));
}
}
\ No newline at end of file
public
function
testConvertDateTimeToPHPValue
()
{
$date
=
new
\DateTime
(
"now"
);
$this
->
assertSame
(
$date
,
$this
->
_type
->
convertToPHPValue
(
$date
,
$this
->
_platform
));
}
}
tests/Doctrine/Tests/DBAL/Types/DateTimeTest.php
View file @
6fa2b941
...
...
@@ -47,4 +47,10 @@ class DateTimeTest extends \Doctrine\Tests\DbalTestCase
{
$this
->
assertNull
(
$this
->
_type
->
convertToPHPValue
(
null
,
$this
->
_platform
));
}
}
\ No newline at end of file
public
function
testConvertDateTimeToPHPValue
()
{
$date
=
new
\DateTime
(
"now"
);
$this
->
assertSame
(
$date
,
$this
->
_type
->
convertToPHPValue
(
$date
,
$this
->
_platform
));
}
}
tests/Doctrine/Tests/DBAL/Types/DateTimeTzTest.php
View file @
6fa2b941
...
...
@@ -47,4 +47,10 @@ class DateTimeTzTest extends \Doctrine\Tests\DbalTestCase
{
$this
->
assertNull
(
$this
->
_type
->
convertToPHPValue
(
null
,
$this
->
_platform
));
}
}
\ No newline at end of file
public
function
testConvertDateTimeToPHPValue
()
{
$date
=
new
\DateTime
(
"now"
);
$this
->
assertSame
(
$date
,
$this
->
_type
->
convertToPHPValue
(
$date
,
$this
->
_platform
));
}
}
tests/Doctrine/Tests/DBAL/Types/TimeTest.php
View file @
6fa2b941
...
...
@@ -44,4 +44,10 @@ class TimeTest extends \Doctrine\Tests\DbalTestCase
{
$this
->
assertNull
(
$this
->
_type
->
convertToPHPValue
(
null
,
$this
->
_platform
));
}
}
\ No newline at end of file
public
function
testConvertDateTimeToPHPValue
()
{
$date
=
new
\DateTime
(
"now"
);
$this
->
assertSame
(
$date
,
$this
->
_type
->
convertToPHPValue
(
$date
,
$this
->
_platform
));
}
}
tests/Doctrine/Tests/DBAL/Types/VarDateTimeTest.php
View file @
6fa2b941
...
...
@@ -59,4 +59,10 @@ class VarDateTimeTest extends \Doctrine\Tests\DbalTestCase
{
$this
->
assertNull
(
$this
->
_type
->
convertToPHPValue
(
null
,
$this
->
_platform
));
}
}
\ No newline at end of file
public
function
testConvertDateTimeToPHPValue
()
{
$date
=
new
\DateTime
(
"now"
);
$this
->
assertSame
(
$date
,
$this
->
_type
->
convertToPHPValue
(
$date
,
$this
->
_platform
));
}
}
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