YES. Если ваша конфигурация фреймворка использует постоянное соединение, то все временные таблицы будут присутствовать от одного вызова к другому. Если вы не используете постоянное соединение, то в конце скрипта соединение с БД автоматически прервется, и ваш следующий скрипт запустится заново. Если вы полагаетесь на временные таблицы в своих вызовах, и они должны отличаться, будьте осторожны. За сайт MYSQL:
Таблица TEMPORARY видна только текущему соединению и автоматически удаляется при закрытии> соединения. Это означает, что два разных соединения могут использовать одну временную таблицу
имя, не вступая в конфликт друг с другом или с существующей не ВРЕМЕННОЙ таблицей с тем же именем.
http://dev.mysql.com/doc/refman/5.1/en/create-table.html
Вы упомянули фреймворки, так что вот пример для вас в CodeIgniter. Создать контроллер. Давайте назовем CTRL, а затем набор методов step1, step2, step3, step4. Тебе нужны только 1 и 2, но я немного переборщил:
function step1()
{
$this->your_model->db->query("CREATE TEMPORARY TABLE test (col1 int null);");
$this->your_model->db->query("INSERT INTO test values (1);");
}
function step2()
{
$res = $this->your_model->db->query("SELECT * from test;");
print_r($res->result_array());
}
function step3()
{
$this->your_model->db->query("INSERT INTO test values (2);");
$this->your_model->db->query("INSERT INTO test values (3);");
}
function step4()
{
$res = $this->your_model->db->query("SELECT * from test;");
print_r($res->result_array());
}
Если вы запустили вышеупомянутое с pconnect, установленным в TRUE, выполнив это по очереди:
http://yoursite/CTRL/step1
http://yoursite/CTRL/step2
http://yoursite/CTRL/step3
http://yoursite/CTRL/step4
Вы получите данные, вставленные и затем отображенные при одном вызове другому, что означает, что ваша таблица TEMP все еще там.
Теперь, измените 'pconnect' на FALSE, сбросьте ваш сервер и снова запустите выше, вы получите:
Table 'yourdb.test' doesn't exist
SELECT * from test;
Filename: C:\yourpath\system\database\DB_driver.php