/** * @expectedException \Magento\Framework\Exception\LocalizedException * @expectedExceptionMessage Cannot execute multiple queries */ public function testMultipleQueryException() { $sql = "SELECT COUNT(*) AS _num FROM test; "; $sql .= "INSERT INTO test(id) VALUES (1); "; $sql .= "SELECT COUNT(*) AS _num FROM test; "; $this->_mockAdapter->query($sql); }
/** * Test DDL query inside transaction in Developer mode * * @dataProvider ddlSqlQueryProvider * @expectedException \Exception * @expectedExceptionMessage DDL statements are not allowed in transactions */ public function testCheckDdlTransaction($ddlQuery) { $this->_mockAdapter->query($ddlQuery); }
/** * Run sql code * * @param string $command * @return $this */ public function runCommand($command) { $this->_write->query($command); return $this; }
/** * @param string|\Zend_Db_Select $sql * @param array $bind * @return void|\Zend_Db_Statement_Pdo */ public function query($sql, $bind = []) { if ($this->verbosity >= OutputInterface::VERBOSITY_VERBOSE && false === strpos($sql, 'SHOW ') && false === strpos($sql, 'DESCRIBE ')) { $this->output->writeln('SQL: <info>' . $sql . '</info>'); } $ret = null; try { $ret = parent::query($sql, $bind); } catch (\Exception $e) { $this->output->writeln('Failed: <error>' . $e->getMessage() . '</error>' . PHP_EOL . '<info>' . $sql . '</info>'); } return $ret; }