alum5nium Опубликовано: декабря 23, 2018 Жалоба Поделиться Опубликовано: декабря 23, 2018 Как сделать чтобы была два сайта и одна база. Домены разные. Нужно чтобы при добавлении товара на site1.ua товары появлялись на site2.ua. Заранее спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: декабря 23, 2018 Жалоба Поделиться Опубликовано: декабря 23, 2018 Пробовали хотя бы на одном хостинге прописать? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
alum5nium Опубликовано: декабря 24, 2018 Автор Жалоба Поделиться Опубликовано: декабря 24, 2018 17 часов назад, BuslikDrev сказал: Пробовали хотя бы на одном хостинге прописать? Да пробовал. Но либо стирает базу ( если база на двоих). Либо не чего не происходит! Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: декабря 24, 2018 Жалоба Поделиться Опубликовано: декабря 24, 2018 1 час назад, alum5nium сказал: Да пробовал. Но либо стирает базу ( если база на двоих). Либо не чего не происходит! Сайты разные (шаблон, модули)? Если они разные и нужно только товары, тогда нужна 1 БД, с разными префиксами и только для товара в коде прописать общий префикс вместо DB_PREFIX для второго сайта. Возможно есть и другой вариант. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
alum5nium Опубликовано: декабря 24, 2018 Автор Жалоба Поделиться Опубликовано: декабря 24, 2018 В 24.12.2018 at 15:08, BuslikDrev сказал: Сайты разные (шаблон, модули)? Если они разные и нужно только товары, тогда нужна 1 БД, с разными префиксами и только для товара в коде прописать общий префикс вместо DB_PREFIX для второго сайта. Возможно есть и другой вариант. Да всё разное. И домены и сайты, шаблон правда будет такой же как на первом сайте! То есть получается скачивается база с первого сайта и добаляется во второй только префикс другой? Просто не пойму откуда она будет брать товары если я её скачаю и добавлю базу во второй сайт. Короче как я понимаю не справлюсь я с этим задание! Нужен исполнитель! Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Это популярное сообщение. BuslikDrev Опубликовано: декабря 24, 2018 Это популярное сообщение. Жалоба Поделиться Опубликовано: декабря 24, 2018 Второй способ, на счёт безопасно ли прописывать данные от БД в нём я не знаю. Нужно сделать подключение к двум БД и сделать условие, если идёт запись в таблицы товара, то записываем в другую БД. В моём случае префиксы, имя пользователя и пароль одинаковые в двух БД. Оба сайта и БД на одном хостинге. Данный файл обрабатывает все запросы. system\library\db\mysqli.php Скрытый текст <?php // * @copyright OPENCART.PRO 2011 - 2015. // * @forum http://forum.opencart.pro // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt namespace DB; final class MySQLi { private $link; private $link2; public function __construct($hostname, $username, $password, $database, $port = '3306') { $this->link = new \mysqli($hostname, $username, $password, $database, $port); if ($this->link->connect_error) { trigger_error('Error: Could not make a database link (' . $this->link->connect_errno . ') ' . $this->link->connect_error); exit(); } $this->link->set_charset("utf8"); $this->link->query("SET SQL_MODE = ''"); if (property_exists($this, 'link')) { $this->link->query("SET SESSION group_concat_max_len = 65535"); } else { $this->connection->query("SET SESSION group_concat_max_len = 65535"); } // значения от второй БД адрес, имя пользователя, пароль, имя БД, порт $this->link2 = new \mysqli($hostname, $username, $password, 'oc23', $port); if ($this->link2->connect_error) { trigger_error('Error: Could not make a database link (' . $this->link2->connect_errno . ') ' . $this->link2->connect_error); exit(); } $this->link2->set_charset("utf8"); $this->link2->query("SET SQL_MODE = ''"); if (property_exists($this, 'link2')) { $this->link2->query("SET SESSION group_concat_max_len = 65535"); } else { $this->connection->query("SET SESSION group_concat_max_len = 65535"); } } public function query($sql) { //$sql = str_replace('oc_product', 'oc2_product', $sql); // условие выборки if (stristr($sql, 'oc_product ') || stristr($sql, 'oc_product_description ')) { $query = $this->link2->query($sql); } else { $query = $this->link->query($sql); } if (!$this->link2->errno) { if ($query instanceof \mysqli_result) { $data = array(); while ($row = $query->fetch_assoc()) { $data[] = $row; } $result = new \stdClass(); $result->num_rows = $query->num_rows; $result->row = isset($data[0]) ? $data[0] : array(); $result->rows = $data; $query->close(); return $result; } else { return true; } } else { trigger_error('Error: ' . $this->link2->error . '<br />Error No: ' . $this->link2->errno . '<br />' . $sql); } if (!$this->link->errno) { if ($query instanceof \mysqli_result) { $data = array(); while ($row = $query->fetch_assoc()) { $data[] = $row; } $result = new \stdClass(); $result->num_rows = $query->num_rows; $result->row = isset($data[0]) ? $data[0] : array(); $result->rows = $data; $query->close(); return $result; } else { return true; } } else { trigger_error('Error: ' . $this->link->error . '<br />Error No: ' . $this->link->errno . '<br />' . $sql); } } public function escape($value) { return $this->link->real_escape_string($value); } public function countAffected() { return $this->link->affected_rows; } public function getLastId() { return $this->link->insert_id; } public function __destruct() { $this->link->close(); } } lilianzz 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
alum5nium Опубликовано: декабря 24, 2018 Автор Жалоба Поделиться Опубликовано: декабря 24, 2018 45 минут назад, BuslikDrev сказал: Второй способ, на счёт безопасно ли прописывать данные от БД в нём я не знаю. Нужно сделать подключение к двум БД и сделать условие, если идёт запись в таблицы товара, то записываем в другую БД. В моём случае префиксы, имя пользователя и пароль одинаковые в двух БД. Оба сайта и БД на одном хостинге. Данный файл обрабатывает все запросы. system\library\db\mysqli.php Скрыть содержимое <?php // * @copyright OPENCART.PRO 2011 - 2015. // * @forum http://forum.opencart.pro // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt namespace DB; final class MySQLi { private $link; private $link2; public function __construct($hostname, $username, $password, $database, $port = '3306') { $this->link = new \mysqli($hostname, $username, $password, $database, $port); if ($this->link->connect_error) { trigger_error('Error: Could not make a database link (' . $this->link->connect_errno . ') ' . $this->link->connect_error); exit(); } $this->link->set_charset("utf8"); $this->link->query("SET SQL_MODE = ''"); if (property_exists($this, 'link')) { $this->link->query("SET SESSION group_concat_max_len = 65535"); } else { $this->connection->query("SET SESSION group_concat_max_len = 65535"); } // значения от второй БД адрес, имя пользователя, пароль, имя БД, порт $this->link2 = new \mysqli($hostname, $username, $password, 'oc23', $port); if ($this->link2->connect_error) { trigger_error('Error: Could not make a database link (' . $this->link2->connect_errno . ') ' . $this->link2->connect_error); exit(); } $this->link2->set_charset("utf8"); $this->link2->query("SET SQL_MODE = ''"); if (property_exists($this, 'link2')) { $this->link2->query("SET SESSION group_concat_max_len = 65535"); } else { $this->connection->query("SET SESSION group_concat_max_len = 65535"); } } public function query($sql) { //$sql = str_replace('oc_product', 'oc2_product', $sql); // условие выборки if (stristr($sql, 'oc_product ') || stristr($sql, 'oc_product_description ')) { $query = $this->link2->query($sql); } else { $query = $this->link->query($sql); } if (!$this->link2->errno) { if ($query instanceof \mysqli_result) { $data = array(); while ($row = $query->fetch_assoc()) { $data[] = $row; } $result = new \stdClass(); $result->num_rows = $query->num_rows; $result->row = isset($data[0]) ? $data[0] : array(); $result->rows = $data; $query->close(); return $result; } else { return true; } } else { trigger_error('Error: ' . $this->link2->error . '<br />Error No: ' . $this->link2->errno . '<br />' . $sql); } if (!$this->link->errno) { if ($query instanceof \mysqli_result) { $data = array(); while ($row = $query->fetch_assoc()) { $data[] = $row; } $result = new \stdClass(); $result->num_rows = $query->num_rows; $result->row = isset($data[0]) ? $data[0] : array(); $result->rows = $data; $query->close(); return $result; } else { return true; } } else { trigger_error('Error: ' . $this->link->error . '<br />Error No: ' . $this->link->errno . '<br />' . $sql); } } public function escape($value) { return $this->link->real_escape_string($value); } public function countAffected() { return $this->link->affected_rows; } public function getLastId() { return $this->link->insert_id; } public function __destruct() { $this->link->close(); } } Спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.