2013-02-20 26 views
1

我在使用PHP设置SQL查询时遇到了一些困难。当我从HTML页面提交时,收到以下错误:“错误:表'searchquery_interfaithmedical_com.Persons'不存在”

我有以下的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数据库中的表的人。当我从HTML页面提交时,我收到以下错误:“错误:表'searchquery_interfaithmedical_com.Persons'不存在”。

在插入之前,PHP脚本是不是已经在照顾TABLE的创建?我如何纠正这个问题?

+3

[**请不要在新代码**中使用'mysql_ *'函数](http://bit.ly/phpmsql)。他们不再被维护[并且被正式弃用](http://j.mp/XqV7Lp)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – ceejayoz 2013-02-20 20:57:05

+2

基本的PHP。你将两个不同的查询分配给同一个变量。插入覆盖创建,繁荣。没有创建查询。你的代码基本上是'$ x = 5; $ x = 1000;'并且期望$ x是5.你也对[sql注入攻击]敞开大门(http://bobby-tables.com)。对于看起来与医疗相关的代码来说,这是一件特别糟糕的事情。 – 2013-02-20 20:57:12

+1

你永远不会运行你的第一个sql语句... – sgeddes 2013-02-20 20:57:26

回答

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/>'; 
} 
+0

哇感谢肖恩像魅力一样工作。如果我还想在同一个脚本中显示数据库中的内容,那该怎么办?请看我上面的编辑。 – Si8 2013-02-20 21:04:19

+0

不客气。检查我的编辑。 – SeanWM 2013-02-20 22:49:48

1

如已覆盖与插入查询您创建表没有在第一时间执行。请使用下面的代码来解决问题,并尽量避免再次频繁使用相同的变量。

<?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); ?> 
相关问题