Jump to content

Как подключить внешнюю базу данных Invesion Community 4.1.17

Featured Replies

Я хочу подключить базу данных к своему форуму, мне нужно вытащить данные из этой базы в postContainer. Кто-нибудь может мне помочь?

Link to comment
https://ipbmafia.ru/topic/27495-kak-podklyuchit-vneshnyuyu-bazu-dannyh-invesion-community-4117/
Share on other sites
19 минут назад, Morphe сказал:

Я хочу подключить базу данных к своему форуму, мне нужно вытащить данные из этой базы в postContainer. Кто-нибудь может мне помочь?

Подключиться к внешней какой-то бд?

1 minute ago, Exception said:

Подключиться к внешней какой-то бд?

На самом деле я хочу подключиться к внешней базе данных, я впервые использую invesion community и не знаю, как это сделать. Можете ли вы помочь мне с этим?

3 минуты назад, Morphe сказал:

На самом деле я хочу подключиться к внешней базе данных, я впервые использую invesion community и не знаю, как это сделать. Можете ли вы помочь мне с этим?

Без знаний php и как устроен ips ничего не получится. Как минимум придется расширять классы (плагином) чтобы подключиться к бд или инклудить файл в шаблон

5 minutes ago, Exception said:

Без знаний php и как устроен ips ничего не получится. Как минимум придется расширять классы (плагином) чтобы подключиться к бд или инклудить файл в шаблон

Я знаю php, просто раньше не работал с IPS. Я могу работать с собственными данными IPS, у меня нет проблем с этим.
Мне просто нужно обеспечить другое подключение к базе данных и получить доступ к ней.
 

try
{
  $db = \IPS\Db::i( 'host', array(
      'sql_port' => 'port',
      'sql_user' => 'user',
      'sql_pass' => 'pass',
      'sql_database' => 'database',
      'sql_tbl_prefix' => 'prefix',
      'sql_utf8mb4' => TRUE
      ) );
  $data = $db->select( '*', 'table_name', array( 'row=?', 'value' ) );
}
catch ( \Exception $e )
{
	// bump ;(
}

 

21 minutes ago, Exception said:
try
{
  $db = \IPS\Db::i( 'host', array(
      'sql_port' => 'port',
      'sql_user' => 'user',
      'sql_pass' => 'pass',
      'sql_database' => 'database',
      'sql_tbl_prefix' => 'prefix',
      'sql_utf8mb4' => TRUE
      ) );
  $data = $db->select( '*', 'table_name', array( 'row=?', 'value' ) );
}
catch ( \Exception $e )
{
	// bump ;(
}



Я создал соединение таким образом, как мне вызвать эти данные в postContainer? 
Мне нужно только это.

 

Edited by Morphe

Не знаю где и что ты там создал, можно попробовать так:

{insert="$filename"}

// $filename - The filename of the PHP file to include. The output of the file is buffered and output.

 

Edited by Exception

14 часов назад, Morphe сказал:

 

Спойлер
try {
    $dsn = 'mysql:host=your_host;dbname=your_dbname;charset=utf8';
    $username = 'your_username';
    $password = 'your_password';
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];

    $pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
    exit;
}

$stmt = $pdo->query('SELECT * FROM your_table');
$results = $stmt->fetchAll();

foreach ($results as $row) {
    $postContent = $row['your_column'];
    
    // Подставьте ваши значения для $topicId и $authorId
    $topicId = 1;
    $authorId = 1;

    $topic = \IPS\forums\Topic::load($topicId);
    $post = \IPS\forums\Topic\Post::create([
        'topic'         => $topic,
        'author'        => \IPS\Member::load($authorId),
        'post'          => $postContent,
        'post_date'     => time(),
    ]);

    $post->save();
}

 

Попробуйте так, это пример кода который подключается к внешней базе данных, получает данные и вставляет их в postContainer

Edited by alxbelarus

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.