Displaying 61-70 of 276 results.
Resolved: Yii2 required rule not show red star(asterisk) symbol
posted by admin on February 21, 2017
I have form and I have required fields
In output not showing red asterisk(star).
How to resolve it?Read more
Wiki: MySQL: отличия между MyISAM и InnoDBwiki
posted by admin on March 9, 2016
Отличия между системами хранения данных MyISAM и InnoDB простым языком.

В данной таблице я попробовал показать разницу между MyISAM и InnoDB на простых примерах:


Транзакционный движек?
Транзакция (Transaction) — блок операторов SQL , который в случае ошибки в одном запросе, возвращается к предыдущему состоянию (Rollback), и только в случае выполнения всех запросов подтверждается (Commit)

MyISAM Нет
InnoDB Да


Поддержка внешних ключей.
Внешние ключи — это способ связать записи в двух таблицах по определенным полям так, что при обновлении поля в родительской автоматически происходит определенное изменение поля в дочерней (дочернюю и родительскую выбираешь при создании ключа; точнее, создаешь ключ в дочерней, который ссылается на родительскую).

MyISAM Нет
InnoDB Да


Блокировка.
Блокировка на уровне строк, т.е. если процессу нужно обновить строку в таблице, то он блокирует только эту строку, позволяя другим обновлять другие строки параллельно

MyISAM Блокировка на уровне таблиц
InnoDB Блокировка на уровне строкк


Одновременные запросы к разным частям таблицы.

MyISAM Медленнее
InnoDB Быстрее


При смешанной нагрузке в таблице (select/update/delete/insert)

MyISAM Медленнее
InnoDB Быстрее


Операция Insert

MyISAM Быстрее
InnoDB Медленнее, ибо есть оверхед на транзакцию, но это цена надежности


Если преобладают операции чтения (SELECT)

MyISAM Работает быстрее
InnoDB Работает медленнее


Deadlock.
Deadlock — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими процессами.

MyISAM Не возникают
InnoDB Возможны


Поддержка полнотекстового поиска

MyISAM Да
InnoDB Нет (доступен начиная с версии MySQL 5.6.4)


Запрос Count(*)

MyISAM Быстрее
InnoDB Медленнее


Поддержка mysqlhotcopy.
Утилита mysqlhotcopy представляет собой Perl-сценарий, использующий SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или scp для быстрого получения резервной копии базы данных.

MyISAM Да
InnoDB Нет


Файловое хранение таблиц

MyISAM Каждой таблице отдельный файл
InnoDB Данные при настройках по умолчанию хранятся в больших совместно используемых файлах


Бинарное копировании таблиц?
Табличные файлы можно перемещать между компьютерами разных архитектур и разными операционными системами без всякого преобразования.

MyISAM Да
InnoDB Нет


Размер таблиц в БД

MyISAM Меньше
InnoDB Больше


Поведение в случае сбоя

MyISAM Крашится вся таблица
InnoDB По логам можно все восстановить


В случае хранения «логов» и подобного

MyISAM Лучше
InnoDB Хуже

Выводы:
  • Использовать MyISAM лучше в таблицах, которых преобладает один вид доступа: чтение (новостной сайт) или запись (например, логирование) ;
  • Использование InnoDB имеет смысл во всех остальных случаях и случаях повышенных требований по сохранности данных.
Read more
Resolved: Bxslider height not responsive when resize
posted by admin on March 17, 2016
bxslider height not responsive, when I resize window, width is OK, but height not changeRead more
Resolved: Convert an associative array to a simple array of its values in php
posted by admin on April 7, 2016
I would like to convert the array:

Array (
[category] => category
[post_tag] => post_tag
[nav_menu] => nav_menu
[link_category] => link_category
[post_format] => post_format
)

to

array(category, post_tag, nav_menu, link_category, post_format)
Read more
Wiki: Yii on update, detect if a specific AR property has been changed on beforeSave()wiki
posted by admin on April 23, 2016
You need to store the old attributes in a local property in the AR class so that you can compare the current attributes to those old ones at any time.

Step 1. Add a new property to the AR class:

// Stores old attributes on afterFind() so we can compare
// against them before/after save
protected $oldAttributes;


Step 2. Override Yii's afterFind() and store the original attributes immediately after they are retrieved.

public function afterFind(){
$this->oldAttributes = $this->attributes;
return parent::afterFind();
}


Step 3. Compare the old and new attributes in beforeSave/afterSave or anywhere else you like inside the AR class. In the example below we are checking if the property called 'level' is changed.

public function beforeSave()
{
if(isset($this->oldAttributes['level']) && $this->level != $this->oldAttributes['level']){

// The attribute is changed. Do something here...

}

return parent::beforeSave();
}
Read more
Resolved: Hosting iPage.com MySQL connection error: SQLSTATE[HY000] [2002] Connection refused
posted by admin on November 11, 2016
I am trying to run my Yii 1 website and connect to DB, which is not in my hosting iPage.com and have this error:

CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] Connection refused

For example, my MySQL config in iPage.com working fine
protected/config/database.php

<?php
return array(
'connectionString' => 'mysql:host=*******.ipagemysql.com;dbname=somename',
'emulatePrepare' => true,
'username' => 'someuser',
'password' => 'somepassword',
'charset' => 'utf8',
);

Another server connection and error
protected/config/database.php

<?php
return array(
'connectionString' => 'mysql:host=anotherhostname;dbname=somename',
'emulatePrepare' => true,
'username' => 'someuser',
'password' => 'somepassword',
'charset' => 'utf8',
);

Error:

CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] Connection refused
Read more
Resolved: PHP date or datetime to Yesterday, Today
posted by admin on March 30, 2016
In my social website, I want to convert datetimes in format, like
Today
YesterdayRead more
Resolved: Syntaxhighlighter can't find any brushes after ajax request
posted by admin on December 25, 2015
After implementing pagination on my website, I was not able to highlight the code with SyntaxHighliter plugin. After AJAX call script was throwing an error: "Can't find brush for: BRUSH".Read more
Wiki: Yii 1.1 Cgridview TextField Search and Filter of a relations field without errorswiki
posted by admin on October 11, 2016
1) Add some public attribute to the model.

class Customer extends CActiveRecord
{
public $customername; // for firstname + lastname;
....

2) Declare it safe on search.

public function rules()
{
return array(
....
array('id, firstname, lastname, ...., customername', 'safe', 'on'=>'search'),
);
}

3) Set the label for it.

public function attributeLabels()
{
return array(
'id' => 'ID',
'firstname' => 'First Name',
'lastname' => 'Last Name',
....
'customername' => 'Customer Name',
);
}

4) Add a search condition for it in "search()" method.

public function search()
{
$criteria=new CDbCriteria;

$criteria->compare('id',$this->id);
$criteria->compare('firstname',$this->firstname);
$criteria->compare('lastname',$this->lasttname);
....
if ( $this->customername != "" )
{
$crit2 = new CDbCriteria;
$crit2->compare('firstname', $this->customername , true, 'OR');
$crit2->compare('lastname', $this->customername , true, 'OR');
$criteria->mergeWith($crit2);
}
....

5) Add the sorting rule for it, also in the "search()" method.

....
return new CActiveDataProvider(get_class($this), array(
'criteria' => $criteria,
'sort' => array(
'defaultOrder' => 'lastname, firstname',
'attributes' => array(
'customername' => array(
'asc' => 'lastname, firstname',
'desc' => 'lastname DESC, firstname DESC',
),
'*',
),
),
'pagination' => array(
'pageSize' => 20,
),
));

6) And use the attribute in the grid.

$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'customer-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
....
array(
'name' => 'customername',
'value' => '$data->firstname . " " . $data->lastname',
),
....
Read more
Resolved: Yii2 Migration multiple insert
posted by admin on February 20, 2017
I want to insert multiple rows in migration

$this->insert //insert once

I want multipleRead more