数据库中没有表,但实际上存在该表。

3
我正在使用PHP创建一个动态表格,并在其中存储一些数据。
有时当我运行查询时,表格被创建并执行数据查询,但是如果我刷新查询或刷新页面,它会显示错误,说表格不存在,再次刷新页面后,将在2或3次尝试中加载数据。
我正在动态创建表格,然后对其进行操作,最后删除表格。以下是我的代码:
<?php

$droptable = "DROP TABLE IF EXISTS temp_post";

if(!mysql_query($droptable))
{echo msql_error();}

    $sqlcreatetable = "CREATE TABLE temp_post(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    seq_id INT (6),
    name VARCHAR(64) NOT NULL)";

    if(!mysql_query($sqlcreatetable))
        {
            echo " ERROR CREATING TABLE --> ".mysql_error();
        }
    else{
           //query here
        }
        $sqldel = "DROP TABLE temp_post";
        if(!mysql_query($sqldel)){
            echo "ERROR DELETING TABLE --> ".mysql_error();
        }

      ?>

我已经查看了其他帖子并尝试了解决方案,但仍然无法正常工作。求助!!..干杯


2
你遇到了什么错误? - roullie
在操作查询时出现以下错误 -> 表'temp_post'不存在...并且在最后的DROP TABLE查询中,出现以下错误 -> 删除表-->未知表'temp_post'... - deejay
我在你的代码示例中没有看到与MySQL服务器或数据库的任何连接!我们假设你在代码示例中省略了它,还是完全忘记了? - RiggsFolly
不需要在这里编写连接字符串,只需提供相关代码即可。 - deejay
2个回答

1
可能会有冲突.. 2个同时的请求,因此一个请求可以删除另一个请求使用的表
尝试将CREATE TABLE更改为CREATE TEMPORARY TABLE

让我试一下,然后我会发布结果。 - deejay
我需要通过查询删除这个CREATE TEMPORARY TABLE吗?还是它会在结束时自动删除? - deejay
根据人的说法,它会自动删除。"临时表只对当前会话可见,并在会话关闭时自动删除。这意味着两个不同的会话可以使用相同的临时表名称而不会相互冲突或与同名的现有非临时表发生冲突。(现有表将被隐藏,直到临时表被删除。)" - Max P.
到目前为止没有错误。我认为它已经起作用了。我刷新了几次页面,一切正常。 - deejay
我还没有删除底部的这个drop查询.. 我应该删除吗? - deejay
我认为你可以保留删除查询。 - Max P.

1
为什么要创建和删除表呢? 使用CREATE TEMPORARY TABLE或者在使用后直接TRUNCATE表即可。

让我试一下,然后我会发布结果。 - deejay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接