Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (38)

Лучшие ответы пользователя

Все ответы (13)
  • Как из excel вывести в бд phpmyadmin?

    У меня тоже была только-что такая проблема. Методом тыка обнаружил, что проблема таки в кодировке. Например, открываете файл csv в программе notepad++ и смотрите кодировку в меню "Кодировки". Скорее она у вас в UTF-8 (с BOM), а должна быть в UTF-8 без BOM. Насколько помню, BOM добавляет какой-то непечатаемый символ в начало файла, из-за этого и ошибка.
    Ответ написан
  • Как написать запрос с "USE INDEX (artist_2)" используя kohana 3 orm?

    @romalu Автор вопроса
    Всем спасибо за помощь, для себя выбрал путь переопределения методов классов в приложении.
    Добавляем метод в ORM (application/classes/ORM.php):
    <?
    class ORM extends Kohana_ORM {
    
    	public function use_index($index)
    	{
    		$this->_db_pending[] = array(
    			'name' => 'use_index',
    			'args' => array($index),
    		);
    		return $this;
    	}
    }

    И прописываем нужное в application/classes/Database/Query/Builder/Select.php
    <?
    class Database_Query_Builder_Select extends Kohana_Database_Query_Builder_Select {
    
    	protected $_use_index = NULL;
    
    	public function use_index($index)
    	{
    		$this->_use_index = $index;
    
    		return $this;
    	}
    
    	public function compile($db = NULL)
    	{
    		if ( ! is_object($db))
    		{
    			// Get the database instance
    			$db = Database::instance($db);
    		}
    
    		// Callback to quote columns
    		$quote_column = array($db, 'quote_column');
    
    		// Callback to quote tables
    		$quote_table = array($db, 'quote_table');
    
    		// Start a selection query
    		$query = 'SELECT ';
    
    		if ($this->_distinct === TRUE)
    		{
    			// Select only unique results
    			$query .= 'DISTINCT ';
    		}
    
    		if (empty($this->_select))
    		{
    			// Select all columns
    			$query .= '*';
    		}
    		else
    		{
    			// Select all columns
    			$query .= implode(', ', array_unique(array_map($quote_column, $this->_select)));
    		}
    
    		if ( ! empty($this->_from))
    		{
    			// Set tables to select from
    			$query .= ' FROM '.implode(', ', array_unique(array_map($quote_table, $this->_from)));
    		}
    
    		if ($this->_use_index !== NULL)
    		{
    			// Use index
    			$query .= " USE INDEX (" . $this->_use_index . ")";
    		}
    
    		if ( ! empty($this->_join))
    		{
    			// Add tables to join
    			$query .= ' '.$this->_compile_join($db, $this->_join);
    		}
    
    		if ( ! empty($this->_where))
    		{
    			// Add selection conditions
    			$query .= ' WHERE '.$this->_compile_conditions($db, $this->_where);
    		}
    
    		if ( ! empty($this->_group_by))
    		{
    			// Add grouping
    			$query .= ' '.$this->_compile_group_by($db, $this->_group_by);
    		}
    
    		if ( ! empty($this->_having))
    		{
    			// Add filtering conditions
    			$query .= ' HAVING '.$this->_compile_conditions($db, $this->_having);
    		}
    
    		if ( ! empty($this->_order_by))
    		{
    			// Add sorting
    			$query .= ' '.$this->_compile_order_by($db, $this->_order_by);
    		}
    
    		if ($this->_limit !== NULL)
    		{
    			// Add limiting
    			$query .= ' LIMIT '.$this->_limit;
    		}
    
    		if ($this->_offset !== NULL)
    		{
    			// Add offsets
    			$query .= ' OFFSET '.$this->_offset;
    		}
    
    		if ( ! empty($this->_union))
    		{
    			foreach ($this->_union as $u) {
    				$query .= ' UNION ';
    				if ($u['all'] === TRUE)
    				{
    					$query .= 'ALL ';
    				}
    				$query .= $u['select']->compile($db);
    			}
    		}
    
    		$this->_sql = $query;
    
    		return parent::compile($db);
    	}
    
    }

    На заметку, в методе compile я дописал строки в исходный метод compile
    if ($this->_use_index !== NULL)
    		{
    			// USE INDEX
    			$query .= " USE INDEX (" . $this->_use_index . ")";
    		}

    Теперь можно использовать ORM:
    ORM::factory('Mp3')->use_index('artist_2')->where('artist', '=', $artist_name)->where('id', '>', $start_mp3_id)->order_by('id')->limit(10)->find_all();
    Ответ написан
  • Как установить на denwer самоподписанный сертификат?

    @romalu Автор вопроса
    Капец, то ли не там спрашиваю, то ли никто не знает... В общем ответ нашел сам:
    У меня денвер на диске C, поэтому
    В файл
    C:\WebServers\usr\local\apache\conf\httpd.conf
    прописываем
    <VirtualHost site.ru:443>
     SSLEngine on
     SSLCertificateFile C:\WebServers\usr\local\apache\certificate.crt
     SSLCertificateKeyFile C:\WebServers\usr\local\apache\certificate.key
     <Directory C:\WebServers\home\site.ru\www>
     AllowOverride All
     </Directory>
     DocumentRoot C:\WebServers\home\site.ru\www
     ServerName site.ru
     </VirtualHost>


    Соответственно предварительно необходимо поместить сам сертификат и файл ключей в папку C:\WebServers\usr\local\apache\

    Для генерации сертификата я пользовался командной строкой в debian
    openssl genrsa -out certificate.key 2048
    затем
    openssl req -x509 -new -key certificate.key -days 10000 -out certificate.crt
    и вписываем любые данные, можно даже пустые, главное, чтобы в Common Name был адрес вашего сайта (в примере site.ru). Полученные ключ и сертификат копируем в вышеуказанную папку, добавляем сертификат в список доверенных (двойной клик по файлу сертификата - установить сертификат, далее я выбирал куда - в "Доверенные корневые центры сертификации"), перезапускаем денвер. Профит)
    P. s. не кидайтесь камнями, как сделать проще не знаю, как делать самоподписанные сертификаты в виндовс не знаю, это готовое решение, которое мне помогло, если знаете как проще - велкам ту ответы)
    Ответ написан
  • Почему не работает новая phpmyadmin на русском языке после обновления на денвере?

    @romalu Автор вопроса
    Наконец нашел решение. Надо переименовать папку phpmyadmin\locale\ru в ru_RU, после этого в списке языков появится ru_RU, выбрать его, и все заработает. Решение нашел тут https://github.com/crazy-max/neard/issues/241
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (93)