I got it, it's not a problem with  sql_mode="STRICT_ALL_TABLES", it's the 
problem, that only one statement can be executed:

http://stackoverflow.com/questions/17891191/pdo-throwing-error-if-mysql-attr-init-command-is-used

Also, there was a bug report

https://bugs.php.net/bug.php?id=48859

It's for security reason, that only one can be set. The only way to set 
multiple is to use the a comma separated set command...
But it should be in the php documentation...




Am Montag, 30. Dezember 2013 11:14:00 UTC+1 schrieb Benjamin Eberlei:
>
> No, to bugs.php.net
>
>
> On Mon, Dec 30, 2013 at 11:02 AM, Torsten Burschka 
> <[email protected]<javascript:>
> > wrote:
>
>> I tried it and im switched the order with no success.
>>
>> i will try with a basic pdo_mysql & mysqli query with same parameter... 
>> if it fails on one or both, should the bugrequest go to 
>> http://bugs.mysql.com/ ?
>>
>>
>>
>> Am Montag, 30. Dezember 2013 09:35:57 UTC+1 schrieb Benjamin Eberlei:
>>>
>>> Can you try adding a ; after SET NAMES UTF8;
>>>
>>> If this is a bug, then of PDO/MySQLnd
>>>
>>>
>>> On Mon, Dec 30, 2013 at 9:31 AM, Torsten Burschka <[email protected]
>>> > wrote:
>>>
>>>> Hello,
>>>>
>>>> it seems to me like a bug. If i simply use 
>>>>
>>>>
>>>>
>>>>
>>>> *array(        PDO::MYSQL_ATTR_INIT_COMMAND => ' SET NAMES UTF8',)*
>>>>
>>>>
>>>> as driver option, it works like a charm, but if i switch to
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> * array(        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET 
>>>> sql_mode="STRICT_ALL_TABLES"; SET NAMES UTF8',)*
>>>>
>>>> it will cause an Exception:
>>>>
>>>> Doctrine\DBAL\DBALException File: 
>>>>
>>>> /srv/http/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:91
>>>>
>>>> Message: 
>>>>
>>>> An exception occurred while executing 'SELECT t0.id AS id1, t0.type AS 
>>>> type2, t0.name AS name3 FROM demo t0':
>>>>
>>>> SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other 
>>>> unbuffered queries are active.  Consider using PDOStatement::fetchAll().  
>>>> Alternatively, if your code is only ever going to run against mysql, you 
>>>> may enable query buffering by setting the 
>>>> PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
>>>>
>>>> Stack trace: 
>>>>
>>>> #0 
>>>> /srv/http/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(701): 
>>>> Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(PDOException),
>>>>  'SELECT t0.id AS...', Array)
>>>> #1 
>>>> /srv/http/www/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php(930):
>>>>  Doctrine\DBAL\Connection->executeQuery('SELECT t0.id AS...', Array, Array)
>>>> #2 
>>>> /srv/http/www/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(181):
>>>>  Doctrine\ORM\Persisters\BasicEntityPersister->loadAll(Array, NULL, NULL, 
>>>> NULL)
>>>> #3 
>>>> /srv/http/www/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(164):
>>>>  Doctrine\ORM\EntityRepository->findBy(Array)
>>>> #4 /srv/http/www/module/Core/src/Core/Importer/Demo.php(85): 
>>>> Doctrine\ORM\EntityRepository->findAll()
>>>> #5 /srv/http/www/module/Core/src/Core/Importer/Demo.php(45): 
>>>> Core\Importer\Demo->loadDemos()
>>>> #6 
>>>> /srv/http/www/module/Backend/src/Backend/Controller/IndexController.php(13):
>>>>  Core\Importer\Demo->import()
>>>> #7 
>>>> /srv/http/www/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractActionController.php(83):
>>>>  Backend\Controller\IndexController->indexAction()
>>>> #8 [internal function]: 
>>>> Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
>>>> #9 
>>>> /srv/http/www/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468):
>>>>  call_user_func(Array, Object(Zend\Mvc\MvcEvent))
>>>> #10 
>>>> /srv/http/www/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207):
>>>>  Zend\EventManager\EventManager->triggerListeners('dispatch', 
>>>> Object(Zend\Mvc\MvcEvent), Object(Closure))
>>>> #11 
>>>> /srv/http/www/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractController.php(117):
>>>>  Zend\EventManager\EventManager->trigger('dispatch', 
>>>> Object(Zend\Mvc\MvcEvent), Object(Closure))
>>>> #12 
>>>> /srv/http/www/vendor/zendframework/zendframework/library/Zend/Mvc/DispatchListener.php(114):
>>>>  
>>>> Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request),
>>>>  Object(Zend\Http\PhpEnvironment\Response))
>>>> #13 [internal function]: 
>>>> Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
>>>> #14 
>>>> /srv/http/www/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468):
>>>>  call_user_func(Array, Object(Zend\Mvc\MvcEvent))
>>>> #15 
>>>> /srv/http/www/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207):
>>>>  Zend\EventManager\EventManager->triggerListeners('dispatch', 
>>>> Object(Zend\Mvc\MvcEvent), Object(Closure))
>>>> #16 
>>>> /srv/http/www/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(309):
>>>>  Zend\EventManager\EventManager->trigger('dispatch', 
>>>> Object(Zend\Mvc\MvcEvent), Object(Closure))
>>>> #17 /srv/http/www/public/index.php(17): Zend\Mvc\Application->run()
>>>> #18 {main}
>>>>
>>>>
>>>>
>>>> Even if i add PDO::MYSQL_ATTR_USE_BUFFERED_QUERY it doesn't change 
>>>> anything
>>>>
>>>>
>>>>
>>>>
>>>> *array(         PDO::MYSQL_ATTR_INIT_COMMAND => 'SET 
>>>> sql_mode="STRICT_ALL_TABLES"; SET NAMES UTF8',        
>>>> PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,)*
>>>>
>>>>
>>>>
>>>> And here some connection details:
>>>>
>>>>
>>>>   *private* '_isConnected' => boolean true
>>>>   *private* '_transactionNestingLevel' => int 0
>>>>   *private* '_transactionIsolationLevel' => int 2
>>>>   *private* '_nestTransactionsWithSavepoints' => null
>>>>   *private* '_params' => 
>>>>     *array* *(size=10)*
>>>>       'driverClass' => string 'Doctrine\DBAL\Driver\PDOMySql\Driver' 
>>>> *(length=36)*
>>>>       'wrapperClass' => null
>>>>       'pdo' => null
>>>>       'host' => string 'host' *(length=14)*
>>>>       'port' => string '3306' *(length=4)*
>>>>       'user' => string 'user' *(length=13)*
>>>>       'password' => string 'password' *(length=13)*
>>>>       'dbname' => string 'dbname' *(length=13)*
>>>>       'charset' => string 'utf8' *(length=4)*
>>>>       'driverOptions' => 
>>>>         *array* *(size=4)*
>>>>           1002 => string 'SET sql_mode="STRICT_ALL_TABLES"; SET NAMES 
>>>> UTF8' *(length=48)*
>>>>           1000 => int 1
>>>>           1003 => int 0
>>>>           1004 => int 1
>>>>   *protected* '_platform' => 
>>>>     *object*(*Doctrine\DBAL\Platforms\MySqlPlatform*)[*314*]
>>>>       *protected* 'doctrineTypeMapping' => 
>>>>         *array* *(size=31)*
>>>>           'tinyint' => string 'boolean' *(length=7)*
>>>>           'smallint' => string 'smallint' *(length=8)*
>>>>           'mediumint' => string 'integer' *(length=7)*
>>>>           'int' => string 'integer' *(length=7)*
>>>>           'integer' => string 'integer' *(length=7)*
>>>>           'bigint' => string 'bigint' *(length=6)*
>>>>           'tinytext' => string 'text' *(length=4)*
>>>>           'mediumtext' => string 'text' *(length=4)*
>>>>           'longtext' => string 'text' *(length=4)*
>>>>           'text' => string 'text' *(length=4)*
>>>>           'varchar' => string 'string' *(length=6)*
>>>>           'string' => string 'string' *(length=6)*
>>>>           'char' => string 'string' *(length=6)*
>>>>           'date' => string 'date' *(length=4)*
>>>>           'datetime' => string 'datetime' *(length=8)*
>>>>           'timestamp' => string 'datetime' *(length=8)*
>>>>           'time' => string 'time' *(length=4)*
>>>>           'float' => string 'float' *(length=5)*
>>>>           'double' => string 'float' *(length=5)*
>>>>           'real' => string 'float' *(length=5)*
>>>>           'decimal' => string 'decimal' *(length=7)*
>>>>           'numeric' => string 'decimal' *(length=7)*
>>>>           'year' => string 'date' *(length=4)*
>>>>           'longblob' => string 'blob' *(length=4)*
>>>>           'blob' => string 'blob' *(length=4)*
>>>>           'mediumblob' => string 'blob' *(length=4)*
>>>>           'tinyblob' => string 'blob' *(length=4)*
>>>>           'binary' => string 'blob' *(length=4)*
>>>>           'varbinary' => string 'blob' *(length=4)*
>>>>           'set' => string 'simple_array' *(length=12)*
>>>>           'enum' => string 'string' *(length=6)*
>>>>       *protected* 'doctrineTypeComments' => null
>>>>       *protected* '_eventManager' => 
>>>>         *object*(*Doctrine\Common\EventManager*)[*285*]
>>>>           *private* '_listeners' => 
>>>>             *array* *(size=1)*
>>>>               'loadClassMetadata' => 
>>>>                 *array* *(size=1)*
>>>>                   '00000000633ca8ba000000007337b92a' => 
>>>>                     
>>>> *object*(*Doctrine\ORM\Tools\ResolveTargetEntityListener*)[*284*]
>>>>                       *private* 'resolveTargetEntities' => 
>>>>                         *array* *(size=0)*
>>>>                           *empty*
>>>>       *protected* '_keywords' => null
>>>>   *protected* '_schemaManager' => null
>>>>   *protected* '_driver' => 
>>>>     *object*(*Doctrine\DBAL\Driver\PDOMySql\Driver*)[*311*]
>>>>   *private* '_isRollbackOnly' => boolean false
>>>>   *protected* 'defaultFetchMode' => int 2
>>>>
>>>>  -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "doctrine-user" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>>
>>>> Visit this group at http://groups.google.com/group/doctrine-user.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "doctrine-user" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> Visit this group at http://groups.google.com/group/doctrine-user.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to