Professional Web Applications Themes

#39146 [NEW]: Named placeholder is not bound correctly with Subqueries - PHP Bugs

From: php at mailingslists dot birkholz dot biz Operating system: Linux 2.6.17-gentoo-r7 PHP version: 5.1.6 PHP Bug Type: PDO related Bug description: Named placeholder is not bound correctly with Subqueries Description: ------------ When binding to a named placeholder in a prepared-statement using mysql-5.0.24-r1 causes unpredictable behaviour. With PHP 5.1.4 the query goes correct. Reproduce code: --------------- <?php $dbh = new PDO('mysql:host=localhost;dbname=mysql', 'root', 'pwd'); $query1 = "SELECT * FROM user WHERE User=:user AND Host IN (SELECT Host FROM user WHERE User=:user)"; $query2 = "SELECT * FROM user WHERE Host IN (SELECT Host FROM user WHERE User=:user) AND User=:user"; $stm1 = $dbh->prepare($query1); ...

  1. #1

    Default #39146 [NEW]: Named placeholder is not bound correctly with Subqueries

    From: php at mailingslists dot birkholz dot biz
    Operating system: Linux 2.6.17-gentoo-r7
    PHP version: 5.1.6
    PHP Bug Type: PDO related
    Bug description: Named placeholder is not bound correctly with Subqueries

    Description:
    ------------
    When binding to a named placeholder in a prepared-statement using
    mysql-5.0.24-r1 causes unpredictable behaviour.
    With PHP 5.1.4 the query goes correct.

    Reproduce code:
    ---------------
    <?php

    $dbh = new PDO('mysql:host=localhost;dbname=mysql', 'root', 'pwd');

    $query1 = "SELECT * FROM user WHERE User=:user AND Host IN (SELECT Host
    FROM user WHERE User=:user)";
    $query2 = "SELECT * FROM user WHERE Host IN (SELECT Host FROM user WHERE
    User=:user) AND User=:user";

    $stm1 = $dbh->prepare($query1);
    $stm1->bindValue(':user', 'root');
    $stm1->execute();
    print count($stm1->fetchAll()).'<br>';

    $stm2 = $dbh->prepare($query2);
    $stm2->bindValue(':user', 'root');
    $stm2->execute();
    print count($stm2->fetchAll()).'<br>';


    Expected result:
    ----------------
    Should return: (like it does using the command-line-client)

    2
    2

    Actual result:
    --------------
    It returns:

    2
    6

    --
    Edit bug report at [url]http://bugs.php.net/?id=39146&edit=1[/url]
    --
    Try a CVS snapshot (PHP 4.4): [url]http://bugs.php.net/fix.php?id=39146&r=trysnapshot44[/url]
    Try a CVS snapshot (PHP 5.2): [url]http://bugs.php.net/fix.php?id=39146&r=trysnapshot52[/url]
    Try a CVS snapshot (PHP 6.0): [url]http://bugs.php.net/fix.php?id=39146&r=trysnapshot60[/url]
    Fixed in CVS: [url]http://bugs.php.net/fix.php?id=39146&r=fixedcvs[/url]
    Fixed in release: [url]http://bugs.php.net/fix.php?id=39146&r=alreadyfixed[/url]
    Need backtrace: [url]http://bugs.php.net/fix.php?id=39146&r=needtrace[/url]
    Need Reproduce Script: [url]http://bugs.php.net/fix.php?id=39146&r=needscript[/url]
    Try newer version: [url]http://bugs.php.net/fix.php?id=39146&r=oldversion[/url]
    Not developer issue: [url]http://bugs.php.net/fix.php?id=39146&r=support[/url]
    Expected behavior: [url]http://bugs.php.net/fix.php?id=39146&r=notwrong[/url]
    Not enough info: [url]http://bugs.php.net/fix.php?id=39146&r=notenoughinfo[/url]
    Submitted twice: [url]http://bugs.php.net/fix.php?id=39146&r=submittedtwice[/url]
    register_globals: [url]http://bugs.php.net/fix.php?id=39146&r=globals[/url]
    PHP 3 support discontinued: [url]http://bugs.php.net/fix.php?id=39146&r=php3[/url]
    Daylight Savings: [url]http://bugs.php.net/fix.php?id=39146&r=dst[/url]
    IIS Stability: [url]http://bugs.php.net/fix.php?id=39146&r=isapi[/url]
    Install GNU Sed: [url]http://bugs.php.net/fix.php?id=39146&r=gnused[/url]
    Floating point limitations: [url]http://bugs.php.net/fix.php?id=39146&r=float[/url]
    No Zend Extensions: [url]http://bugs.php.net/fix.php?id=39146&r=nozend[/url]
    MySQL Configuration Error: [url]http://bugs.php.net/fix.php?id=39146&r=mysqlcfg[/url]
    php at mailingslists dot birkholz dot biz Guest

  2. #2

    Default #39146 [Opn->Csd]: Named placeholder is not bound correctly with Subqueries

    ID: 39146
    Updated by: [email]iliaaphp.net[/email]
    Reported By: php at mailingslists dot birkholz dot biz
    -Status: Open
    +Status: Closed
    Bug Type: PDO related
    Operating System: Linux 2.6.17-gentoo-r7
    PHP Version: 5.1.6
    New Comment:

    This bug has been fixed in CVS.

    Snapshots of the sources are packaged every three hours; this change
    will be in the next snapshot. You can grab the snapshot at
    [url]http://snaps.php.net/[/url].

    Thank you for the report, and for helping us make PHP better.




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

    [2006-10-13 12:29:18] php at mailingslists dot birkholz dot biz

    Description:
    ------------
    When binding to a named placeholder in a prepared-statement using
    mysql-5.0.24-r1 causes unpredictable behaviour.
    With PHP 5.1.4 the query goes correct.

    Reproduce code:
    ---------------
    <?php

    $dbh = new PDO('mysql:host=localhost;dbname=mysql', 'root', 'pwd');

    $query1 = "SELECT * FROM user WHERE User=:user AND Host IN (SELECT Host
    FROM user WHERE User=:user)";
    $query2 = "SELECT * FROM user WHERE Host IN (SELECT Host FROM user
    WHERE User=:user) AND User=:user";

    $stm1 = $dbh->prepare($query1);
    $stm1->bindValue(':user', 'root');
    $stm1->execute();
    print count($stm1->fetchAll()).'<br>';

    $stm2 = $dbh->prepare($query2);
    $stm2->bindValue(':user', 'root');
    $stm2->execute();
    print count($stm2->fetchAll()).'<br>';


    Expected result:
    ----------------
    Should return: (like it does using the command-line-client)

    2
    2

    Actual result:
    --------------
    It returns:

    2
    6


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


    --
    Edit this bug report at [url]http://bugs.php.net/?id=39146&edit=1[/url]
    iliaa@php.net Guest

Similar Threads

  1. Using COALESCE for subqueries
    By marty3d in forum MySQL
    Replies: 1
    Last Post: June 15th, 09:02 PM
  2. Joins or subqueries
    By alexford in forum Coldfusion Database Access
    Replies: 1
    Last Post: April 26th, 02:31 AM
  3. Build control in a placeholder or like a placeholder
    By nail in forum ASP.NET Building Controls
    Replies: 0
    Last Post: September 10th, 07:57 PM
  4. DBI and subqueries in mysql 4.1
    By Marc Lambrichs in forum PERL Modules
    Replies: 2
    Last Post: December 13th, 08:03 PM
  5. Why are subqueries recongized as dependencies
    By Chris Becker in forum Microsoft SQL / MS SQL Server
    Replies: 0
    Last Post: July 8th, 07:40 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139