代码之家  ›  专栏  ›  技术社区  ›  Si8

当我从HTML页面提交时,我收到以下错误:“错误:表'searchquery_interfaithmedical.com.Perse'不存在”

  •  1
  • Si8  · 技术社区  · 12 年前

    我在用PHP设置SQL查询时遇到了一些困难。

    我有以下php脚本:

        <?php $con = mysql_connect("URL","USERNAME","PASSWORD"); if (!$con)   {   die('Could not connect: ' . mysql_error());   }
    
    mysql_select_db("searchquery_interfaithmedical_com", $con);
    
    $sql = "CREATE TABLE Persons ( FirstName varchar(15), LastName varchar(15), Age int )";
    
    $sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
    
        if (!mysql_query($sql,$con))   {   die('Error: ' . mysql_error());   } echo "1 record added";
    
    mysql_query($sql);
    $sql = "SELECT * FROM Persons";
    
    mysql_close($con); ?>
    

    我想做的是将名字、姓氏和年龄放入searchquery_interfaithmedical.com数据库中的Persons表中。当我从HTML页面提交时,我收到以下错误:“错误:表'searchquery_interfaithmedical.com.Perse'不存在”。

    PHP脚本不是已经在插入之前负责创建TABLE了吗?如何更正此问题?

    2 回复  |  直到 12 年前
        1
  •  2
  •   SeanWM    12 年前

    您正在覆盖 $sql 变量,以便在运行表之前创建表。请尝试:

    $sql = "CREATE TABLE Persons ( FirstName varchar(15), LastName varchar(15), Age int )";
    mysql_query($sql);
    $sql = "INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
    

    要从表中获取这些值,您需要执行以下操作:

    $sql = mysql_query("SELECT * FROM Persons");
    while($results = mysql_fetch_array($sql)) {
        echo $results['FirstName'] . ', ' . $results['LastName'] . ', ' . $results['Age'] . '<br/>';
    }
    
        2
  •  1
  •   Vasandkumar    12 年前

    创建表一开始并没有执行,因为您已经用插入覆盖了查询。请使用以下代码更正此问题,并尽量避免再次频繁使用同一变量。

    <?php $con = mysql_connect("URL","USERNAME","PASSWORD"); 
    if (!$con)   
    {
       die('Could not connect: ' . mysql_error());   
    }
    
    mysql_select_db("searchquery_interfaithmedical_com", $con);
    
    $query1 = "CREATE TABLE Persons ( FirstName varchar(15), LastName varchar(15), Age int )";
    
    mysql_query$query1,$con);
    
    $query2="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
    
    if (!mysql_query($query2,$con))   
    {   
    die('Error: ' . mysql_error());  
    } 
    echo "1 record added";
    
    mysql_close($con); ?>