Ejemplo n.º 1
0
	/**
	 * Tests the JDatabase::splitSql method.
	 *
	 * @return  void
	 *
	 * @since   12.1
	 */
	public function testSplitSql()
	{
		$this->assertThat(
			$this->db->splitSql('SELECT * FROM #__foo;SELECT * FROM #__bar;'),
			$this->equalTo(
				array(
					'SELECT * FROM #__foo;',
					'SELECT * FROM #__bar;'
				)
			),
			'splitSql method should split a string of multiple queries into an array.'
		);
	}
Ejemplo n.º 2
0
 private function runUpdateSQL($version)
 {
     $db = JFactory::getDBO();
     $buffer = file_get_contents(JPATH_ADMINISTRATOR . '/components/com_jfbconnect/install/sql/updates/' . $version . '.' . $this->getDbType() . '.sql');
     // Graceful exit and rollback if read not successful
     if ($buffer === false) {
         JError::raiseWarning(1, JText::_('JLIB_INSTALLER_ERROR_SQL_READBUFFER'));
         return false;
     }
     // Create an array of queries from the sql file
     //$queries = JDatabaseDriver::splitSql($buffer); // Joomla 3.x+
     $queries = JDatabase::splitSql($buffer);
     $update_count = 0;
     if (count($queries) != 0) {
         // Process each query in the $queries array (split out of sql file).
         foreach ($queries as $query) {
             $query = trim($query);
             if ($query != '' && $query[0] != '#') {
                 $db->setQuery($query);
                 if (!$db->execute()) {
                     JLog::add(JText::sprintf('JLIB_INSTALLER_ERROR_SQL_ERROR', $db->stderr(true)), JLog::WARNING, 'jerror');
                     return false;
                 }
                 $update_count++;
             }
         }
     }
     // All done. Update the db_version row to the latest number
     $query = $db->getQuery(true);
     $query->select($db->qn('value'))->from('#__jfbconnect_config')->where($db->qn('setting') . '=' . $db->q('db_version'));
     $db->setQuery($query);
     $ver = $db->loadResult();
     $query->clear();
     if ($ver) {
         $query->update('#__jfbconnect_config')->where($db->qn('setting') . '=' . $db->q('db_version'))->set($db->qn('value') . '=' . $db->q($version))->set($db->qn('updated_at') . '= NOW()');
     } else {
         $query->insert('#__jfbconnect_config')->columns($db->qn('setting') . "," . $db->qn('value') . ',' . $db->qn('created_at') . "," . $db->qn('updated_at'))->values($db->q('db_version') . ',' . $db->q($version) . ', NOW(), NOW()');
     }
     $db->setQuery($query);
     $db->execute();
 }