1

我在使用 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.Persons' 不存在”。

PHP 脚本在插入之前不是已经在处理 TABLE 的创建了吗?我该如何纠正这个问题?

4

2 回答 2

2

您正在覆盖$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/>';
}
于 2013-02-20T21:00:26.010 回答
1

您的 Create Table 没有首先执行,因为您已经用插入覆盖了查询。请使用以下代码更正问题,并尽量避免再次频繁使用相同的变量。

<?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); ?>
于 2013-02-20T21:05:12.390 回答