Просмотр исходного кода

improvement for ZF-5063. small correction. escape char need not always be backslash

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24789 44c647ce-9c0f-0410-b52a-842ac1e357ba
mcleod@spaceweb.nl 13 лет назад
Родитель
Сommit
9e5d6dbd16
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      library/Zend/Db/Statement.php

+ 4 - 1
library/Zend/Db/Statement.php

@@ -186,9 +186,12 @@ abstract class Zend_Db_Statement implements Zend_Db_Statement_Interface
         $qe = $this->_adapter->quote($q);
         $qe = substr($qe, 1, 2);
         $qe = preg_quote($qe);
+        $escapeChar = substr($qe,0,1);
         // remove 'foo\'bar'
         if (!empty($q)) {
-            $sql = preg_replace("/$q($qe|[^$q])*$q/Us", '', $sql);
+            $escapeChar = preg_quote($escapeChar);
+            // this segfaults only at
+            $sql = preg_replace("/$q([^$q{$escapeChar}]*|($qe)*)*$q/s", '', $sql);
         }
         
         // get a version of the SQL statement with all quoted