mysqli — постоянные соединения, которые не сохраняются между двумя php-скриптами

Я создал временную таблицу в одном php-файле и хочу получить к ней доступ в другом php-файле. Сценарии запускаются последовательно. Я использовал mysqli и предпочитаю p: имя хоста.

Проблема в моем втором файле php, я не могу получить доступ к моей временной таблице. Поэтому я хотел знать, возможно ли это сделать или нет? И если да, то как? Использую WAMP сервер.

1

Решение

Не возможно, напрямую. Временные таблицы уничтожаются, когда соединение, используемое для их установления, закрывается. Когда ваш скрипт «create» завершает работу, его соединение с БД закрывается, и mysql очищает, включая уничтожение этой временной таблицы.

Это означает, что когда запускается ваш скрипт «use», он получает новое соединение без каких-либо вещей, которые сделал первый скрипт.

В PHP есть постоянные соединения, но эти соединения существуют в пуле, и нет никакого контроля над тем, КАКОЕ соединение какие-либо конкретные сценарии получают из этого пула. Вам может повезти и вы получите одно и то же соединение для двух разных скриптов, но это чисто случайно.

Вам понадобится ДРУГОЙ 3-й скрипт, который работает непрерывно, чтобы держать соединение mysql открытым, оставляя временную таблицу на месте. И ваши два других сценария будут общаться с этим третьим.

0

Другие решения

От http://php.net/manual/en/mysqli.persistconns.php

Постоянное соединение расширения mysqli, однако, предоставляет встроенный код обработки очистки. Очистка, проводимая mysqli, включает в себя:

(стоит прочитать и другие вещи, но важная часть)

  • Закрыть и удалить временные таблицы

Короче говоря, временная таблица — это просто временная таблица. Он не предназначен для использования в других целях, кроме временного хранения некоторых данных для одной конкретной операции. Если вы хотите более постоянную вещь, подумайте об использовании конкретной таблицы с механизмом хранения памяти.

0

По вопросам рекламы [email protected]