Edit report at http://bugs.php.net/bug.php?id=47588&edit=1
ID: 47588 Updated by: fel...@php.net Reported by: ssufficool at roadrunner dot com Summary: PDO_DBLIB: barfs on quoted field names -Status: Open +Status: Feedback Type: Bug Package: PDO related Operating System: Linux Gentoo 2.6.x PHP Version: 5.3-svn New Comment: But this patch has a side effect, when using for example... 'where foo = "bar"', the "bar" will be identified as an identifier, not a literal. Right? Previous Comments: ------------------------------------------------------------------------ [2010-03-20 00:50:02] ssufficool at roadrunner dot com Set quoted identifiers to allow "FIELD NAME" quoting style. Index: ext/pdo_dblib/dblib_driver.c =================================================================== --- ext/pdo_dblib/dblib_driver.c (revision 296453) +++ ext/pdo_dblib/dblib_driver.c (working copy) @@ -236,6 +236,9 @@ /* limit text/image from network */ DBSETOPT(H->link, DBTEXTSIZE, "2147483647"); + /* Allow double quoted field and table names */ + DBSETOPT(H->link, DBQUOTEDIDENT, NULL); + if (vars[3].optval && FAIL == dbuse(H->link, vars[3].optval)) { goto cleanup; } ------------------------------------------------------------------------ [2009-05-15 19:43:17] ssufficool at roadrunner dot com Solution: tsql from freetds package set the following where PDO does not: set quoted_identifier on set ansi_warnings on set ansi_padding on set ansi_nulls on set concat_null_yields_null on Since this is default behavior of FreeTDS (tsql) and NT DBLIB (isql), I assume it should be for PDO dblib as well. ------------------------------------------------------------------------ [2009-03-06 16:13:33] ssufficool at roadrunner dot com Description: ------------ When passing a query containing double quoted field names, the query fails. Reproduce code: --------------- $pdo_ms = new PDO('dblib:host=db01;dbname=database', $_SESSION['user'], $_SESSION['pass'], array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ) ); $rs = $pdo_ms->prepare('SELECT "myView"."FieldName" from "myView" order by "Some Field"') Expected result: ---------------- A valid handle to a stmt in $rs Actual result: -------------- SQLSTATE[HY000]: General error: 20018 Incorrect syntax near 'FieldName'. [20018] (severity 5) [(null)] ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=47588&edit=1