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

 ID:               51486
 User updated by:  82508 at qq dot com
 Reported by:      82508 at qq dot com
 Summary:          preg_replace bug
 Status:           Bogus
 Type:             Bug
 Package:          *General Issues
 Operating System: windows
 PHP Version:      5.2.13

 New Comment:

preg_replace bug

and

Zend_Db_Statement

->_stripQuoted

bug:

    protected function _stripQuoted($sql)

    {

        // get the character for delimited id quotes,

        // this is usually " but in MySQL is `

        $d = $this->_adapter->quoteIdentifier('a');

        $d = $d[0];



        // get the value used as an escaped delimited id quote,

        // e.g. \" or "" or \`

        $de = $this->_adapter->quoteIdentifier($d);

        $de = substr($de, 1, 2);

        $de = str_replace('\\', '\\\\', $de);



        // get the character for value quoting

        // this should be '

        $q = $this->_adapter->quote('a');

        $q = $q[0];



        // get the value used as an escaped quote,

        // e.g. \' or ''

        $qe = $this->_adapter->quote($q);

        $qe = substr($qe, 1, 2);

        $qe = str_replace('\\', '\\\\', $qe);



        // get a version of the SQL statement with all quoted

        // values and delimited identifiers stripped out

        // remove "foo\"bar"

        //echo $sql;exit;

        $sql = preg_replace("/$q($qe|\\\\{2}|[^$q])*$q/", '', $sql);

        // remove 'foo\'bar'

        if (!empty($q)) {

            $sql = preg_replace("/$q($qe|[^$q])*$q/", '', $sql);

        }



        return $sql;

    }


Previous Comments:
------------------------------------------------------------------------
[2010-04-07 02:26:10] ka...@php.net

.

------------------------------------------------------------------------
[2010-04-06 10:42:58] 82508 at qq dot com

Description:
------------
<?php

echo"bug.........bug";

$sql="SELECT * FROM su_gamesdb WHERE manufacturers=
'sdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdsdfasdfasdfdfsdfsdfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsddfadfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdfsdfsdfasdfasdfdf'";

$q="'";

$qe="\\'";

echo "/$q($qe|\\\\{2}|[^$q])*$q/";

$sql = preg_replace("/$q($qe|\\\\{2}|[^$q])*$q/", '', $sql);

exit;

?>



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



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

Reply via email to