ID:               42598
 Updated by:       [EMAIL PROTECTED]
 Reported By:      tobias382 at gmail dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         PDO related
 Operating System: Windows XP SP2
 PHP Version:      5.2.4
-Assigned To:      
+Assigned To:      sixd
 New Comment:

Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php

If you can provide more information, feel free to add it
to this bug and change the status back to "Open".

Thank you for your interest in PHP.


I can't reproduce this.  The script

<?php
  $db = new PDO('oci:dbname=ca-tools1/XE', 'hr', 'hrpwd');
  $stmt = $db->prepare("select city from locations where country_id =
:c");
  $id = "UK";
  $stmt->bindParam(":c", $id, PDO::PARAM_STR);
  $stmt->execute();
  print_r($stmt->fetchAll());
?>

gives the expected:

Array
(
    [0] => Array
        (
                [CITY] => London
                [0] => London
         )

    [1] => Array
        (
                [CITY] => Oxford
                [0] => Oxford
         )

    [2] => Array
        (
                [CITY] => Stretford
                [0] => Stretford
         )

 )

Can you examine the data & SQL and identity what does and doesn't work?


Previous Comments:
------------------------------------------------------------------------

[2007-09-08 18:46:03] tobias382 at gmail dot com

Replicating this test within a SQLite environment yields the expected
results, so it's possible that the problem is with the PDO_OCI driver.

------------------------------------------------------------------------

[2007-09-08 17:14:41] tobias382 at gmail dot com

Description:
------------
When using any of the various methods of binding parameter values, a
query produces no results. When including the parameter value directly
in the query string, the query does produce results.

Reproduce code:
---------------
$db = new PDO('oci://localhost/XE', '------', '-----');

$id = 'Wilson';

$sql = 'SELECT C.* FROM BreadCrumbLinks B, BreadCrumbLinks C WHERE
B.Lft BETWEEN C.Lft AND C.Rgt AND B.SiteAreaName = :id ORDER BY C.Lft';
$stmt = $db->prepare($sql);
$stmt->bindValue(':id', $id, PDO::PARAM_STR); // Also tried without
typecasting and without a colon in the parameter name
$stmt->execute(); // also tried with an associative array of parameters
and an enumerated array using ? in place of :id in the query
print_r($stmt->fetchAll());

$sql = 'SELECT C.* FROM BreadCrumbLinks B, BreadCrumbLinks C WHERE
B.Lft BETWEEN C.Lft AND C.Rgt AND B.SiteAreaName = \'' . $id . '\' ORDER
BY C.Lft';
$stmt = $db->prepare($sql);
$stmt->execute();
print_r($stmt->fetchAll());

Expected result:
----------------
Array
(
    [0] => Array
        (
            [SITEAREANAME] => Home
            [0] => Home
            [SITEAREAURL] => Default.aspx
            [1] => Default.aspx
            [LFT] => 1
            [2] => 1
            [RGT] => 24
            [3] => 24
        )
)
Array
(
    [0] => Array
        (
            [SITEAREANAME] => Home
            [0] => Home
            [SITEAREAURL] => Default.aspx
            [1] => Default.aspx
            [LFT] => 1
            [2] => 1
            [RGT] => 24
            [3] => 24
        )
)

Actual result:
--------------
Array
(
)
Array
(
    [0] => Array
        (
            [SITEAREANAME] => Home
            [0] => Home
            [SITEAREAURL] => Default.aspx
            [1] => Default.aspx
            [LFT] => 1
            [2] => 1
            [RGT] => 24
            [3] => 24
        )
)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=42598&edit=1

Reply via email to