DB

Як підключитися до кількох БД у Yii2
Як підключитися до кількох БД у Yii2

Щоб підключитися до кількох баз даних у фреймворку Yii2, потрібно:

1. Створити два конфіги підключення до БД у конфігураційному файлі сайту. У мене підключення винесені в окремі файли, і мають такий вигляд (приклад).

Підключення до першої бази даних:

return  [
	'class' => 'yiidbConnection',
	'dsn' => 'mysql:host=127.0.0.1;dbname=work_db1',
	'username' => 'root',
	'password' => '',
	'charset' => 'utf8',
	'tablePrefix' => 'tbl_',
];

Підключення до другої бази даних:

return  [
	'class' => 'yiidbConnection',
	'dsn' => 'mysql:host=127.0.0.1;dbname=work_db2',
	'username' => 'root',
	'password' => '',
	'charset' => 'utf8',
	'tablePrefix' => 'tbl_',
];

2. У базовому конфігураційному файлі прописуємо:

'db' => require(__DIR__ . '/db.php'),
'db2' => require(__DIR__ . '/db2.php'),

читати далі...

Використання IN в createCommand фреймворку Yii2
Використання IN в createCommand фреймворку Yii2

Для цього слід сформувати запис наступним чином:

Yii::$app -> db -> createCommand() -> update(ContactusModel::tableName(), ['is_read' => 0], [
	'id' => $this -> id
]) -> execute();

Де:
ContactusModel::tableName() — потрібна нам таблиця
$this -> id — масив із ID, який автоматично сформує запит з IN (.., .., .....)

Як у WordPress отримати свій тип записів відфільтрувавши за потрібною таксономією
Як у WordPress отримати свій тип записів відфільтрувавши за потрібною таксономією

Щоб у WordPress отримати певний тип записів, відфільтрованих за кастомною таксономією (або стандартною), скористайтеся наступним сніпетом:

$Posts = get_posts(array(
	'post_type' => 'my-post-type',
	'order' => 'ASC',
	'tax_query' => array(
	array(
			'taxonomy' => 'my-taxonomy',
			'field' => 'slug',
			'terms' => 'event'
		)
	),
	'meta_query' => array(
		'AND',
		array(
			'type' => 'NUMERIC',
			'key' => 'event_date',
			'compare' => '<', 'value' => time()
		),
		array(
			'type' => 'NUMERIC',
			'key' => 'is_archive',
			'compare' => '==',
			'value' => 0
		)
	)
));

читати далі...

Взаємодія плагіна із базою даних WordPress. Частина 2
Взаємодія плагіна із базою даних WordPress. Частина 2

Продовжуємо цикл статей про роботу з базою даних у WordPress. Сьогодні ми поговоримо про створення, оновлення, видалення та отримання даних з БД. Звертаю вашу увагу, що ми працюватимемо не з системною таблицею WordPress, а зі своєю власною.
Дамп цієї таблиці наведений нижче:

CREATE TABLE IF NOT EXISTS `wp_plance_text_shortcodes` (
  `sh_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `sh_title` varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL,
  `sh_code` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
  `sh_description` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `sh_is_lock` tinyint(1) unsigned NOT NULL,
  `sh_date_create` int(10) unsigned NOT NULL,
  PRIMARY KEY (`sh_id`)
) ENGINE=InnoDB;

Таку структуру наразі має таблиця мого плагіна «My Text Shortcodes».

читати далі...

Взаємодія плагіна із базою даних WordPress. Частина 1
Взаємодія плагіна із базою даних WordPress. Частина 1

Вітаю, шановні читачі блогу!
Пропоную трохи розширити наші знання у сфері програмування під WordPress і розглянути в цій статті тему взаємодії плагінів із базою даних.

«З коробки» сам WP має непогані можливості. Я маю на увазі створення власних таксономій, термінів тощо, а також прив'язку до них додаткової інформації на базі метаданих. Це дуже зручно, оскільки, написавши з десяток функцій, можна не хвилюватися про створення інтерфейсу і навіть деяку внутрішню логіку застосунку.

Але мені, як «новачку» у WordPress, більш звично працювати зі строго структурованими таблицями. Тому в цій статті пропоную розглянути саме такий варіант — на прикладі одного з моїх плагінів «my-simple-form», трохи його спростивши.

читати далі...