Issues

ZF-2298: quoteInto changes value when an array is passed as second argument.

Description

When passing an array to $adapter->quoteInto() as the second argument, the function changes the values of the array. For example:

// names = Array ( [0] => php [1] => google [2] => working ) $names = array( 'php', 'google', 'working' );

$where = $dba->quoteInto('name IN (?)', $names)

// print the existing array print_r($names);

// prints out // Array ( [0] => 'php' [1] => 'google' [2] => 'working' )

Notice quoteInto() has now added single quotes to each value in the array, which is unexpected behavior. This was specifically recreated using the MySQL db adapter using Zend _Db_Table.

Comments

Please categorize/fix as needed.

This doesn't appear to have been fixed in 1.5.0. Please update if this is not correct.

Will evaluate within 2 weeks

Cannot reproduce, with latest trunk I tried the unit test below, and it passed fine. Appears that everything that is passed into quoteInto() comes out as it went in.


Index: tests/Zend/Db/Adapter/TestCommon.php
===================================================================
--- tests/Zend/Db/Adapter/TestCommon.php    (revision 17795)
+++ tests/Zend/Db/Adapter/TestCommon.php    (working copy)
@@ -1265,6 +1265,14 @@
         $this->assertEquals('foo = 1234 and bar = ?', $value,
             'Incorrect quoteInto() result for count');
     }
+    
+    public function testAdapterQuoteIntoArray()
+    {
+        $preNames = array('php', 'google', 'working');
+        $postNames = $preNames;
+        $where = $this->_db->quoteInto('IN (?)', $postNames);
+        $this->assertEquals($preNames, $postNames);
+    }
 
     public function testAdapterQuoteTypeInt()
     {