ID: 40452
Comment by: siromega at gmail dot com
Reported By: aspen dot olmsted at alliance dot biz
Status: No Feedback
Bug Type: PDO related
Operating System: Windows 2003, XP
PHP Version: 5.2.1
Assigned To: wez
New Comment:
I am still experiencing this problem at 5.2.11 Windows XP and 2003, MS
SQL Server 2005. PHP PDO, ODBC driver. I am providing a test case that
meets the requirements because this issue does not appear to be
resolved.
<?php
$activeConnection = new PDO("odbc:mssql_dev", "phpbug","phpbug");
$stmt = $activeConnection->prepare("create table phpbug (id int, dt
datetime)");
$stmt->execute();
$stmt = $activeConnection->prepare("insert into phpbug (id, dt) values
(:id, :dt)");
$stmt->bindValue(":id", 1, PDO::PARAM_INT);
$stmt->bindValue(":dt", "01-JAN-09", PDO::PARAM_STR); // There is no
PDO::PARAM_DATE
if (!$stmt->execute())
print_r($stmt->errorInfo());
?>
Error: [Microsoft][ODBC Driver Manager] Function sequence error
(SQLExecute[0] at ext\pdo_odbc\odbc_stmt.c:133)
Previous Comments:
------------------------------------------------------------------------
[2009-05-03 01:00:03] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2009-04-25 14:43:28] [email protected]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2009-04-14 16:49:17] 0kph at 0kph dot com
This error:
SQLSTATE[HY010]: Function sequence error: 0 [Microsoft][ODBC Driver
Manager] Function sequence error (SQLExecute[0] at
ext\pdo_odbc\odbc_stmt.c:133)
throws always when You bind value long than field in table.
In fact, error disapear, when you cut value or extend field in table.
/* c is field varchar(5) */
$sql = 'SELECT a FROM b WHERE c = ?';
$stmt = $pdo->prepare($sql);
/* @var $stmt PDOStatement */
$stmt->bindValue(1, '1234567890');//10 chars
$stmt->execute();
When You will change field c to varchar(10) - error disapear.
I hope, it help in coding with ODBC.
------------------------------------------------------------------------
[2008-11-19 17:19:54] rolfpinto at hotmail dot com
this is code is in php:
<?php
...
$date = '12/01/2007';
mssql_bind($srtproc, "@somedate", $date, SQLVARCHAR, FALSE, FALSE);
...
?>
this is code in your store procedure under ms sql server
ALTER PROCEDURE [dbo].[sp_agregaranimal]
@somedate DATETIME,
AS
BEGIN
SELECT CONVERT(datetime, @somedate, 102)
END
------------------------------------------------------------------------
[2008-02-29 22:20:24] ethan dot nelson at ltd dot org
This bug may be due to failure of SQL Server to perform implicit
conversion between character and datetime data types when the
characterlength is not explicitly part of variable declaration. I
posted my workaround under PDO_ODBC section.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/40452
--
Edit this bug report at http://bugs.php.net/?id=40452&edit=1