2011-04-09 45 views
0

我有一个WebForm,从中我想记录应当提交到下相同的数据库名称的两个表。插入从单一形式代码2个表是给出问题----请大家帮忙

我的代码是

<?php 
$con = mysql_connect("localhost","************","***********"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

$db=mysql_select_db("qserves1_uksurvey", $con); 

    $sql="INSERT INTO forms (date, Receivingsky, Title, Firstname, Lastname, House, Street, Town, County, Postcode, Number, WarrantyCoverForSky, Tvmake, Warrantycover, Payingmonthly, Agentnotes, Agentname) 
VALUES 
(NOW(),'$_POST[Receivingsky]','$_POST[Title]','$_POST[Firstname]','$_POST[Lastname]','$_POST[House]','$_POST[Street]','$_POST[Town]','$_POST[County]','$_POST[Postcode]','$_POST[Number]','$_POST[WarrantyCoverForSky]','$_POST[Tvmake]','$_POST[Warrantycover]','$_POST[Payingmonthly]','$_POST[Agentnotes]','$_POST[Agentname]')"; 
$sql_result = mysql_query($sql, $con) or die (mysql_error()); 

$con2 = mysql_connect("localhost","*******8","*********8"); 
if (!$con2) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

$db2=mysql_select_db("qserves1_uksurvey", $con2); 

$sql2="INSERT INTO dupphones (date, Number) 
Values 
(NOW(),'$_POST[Number]')"; 
$sql_result = mysql_query($sql2, $con2) or die (mysql_error()); 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
echo '<html> 
<head> 
<title>Lead Submitted successfully!!!</title> 
</head> 
<body> 
<center> 
<strong><a href="http://q2serves.com/uksurvey.html">Lead Submitted ---- Click Here To Enter New Lead</a></strong> 
</center> 
</body> 
</html>!'; 

mysql_close($con) 
?> 

这被提交3根引线1是在表dupphones和2根引线在表形式。

我想这只有每个表提交1分领先。

请帮

感谢

+1

为什么要创建到同一数据库的两个连接?您还可以执行mysql_query多次,有时使用$ sql2,然后再使用$ sql。 – halfdan 2011-04-09 10:01:48

+1

只是几句建议。在提交之前清理您的$ _POST数据。并考虑使用主键。另外,为什么你建立一个新的连接来运行第二个查询? – JohnP 2011-04-09 10:04:50

回答

0

您创建两个连接到同一个数据库。您还可以执行mysql_query多次,有时使用$ sql2,然后再使用$ sql。清理你的代码一点点,这是怎么会看:

<?php 
$con = mysql_connect("localhost","************","***********"); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

$db=mysql_select_db("qserves1_uksurvey", $con); 

$sql="INSERT INTO forms (date, Receivingsky, Title, Firstname, Lastname, House, Street, Town, County, Postcode, Number, WarrantyCoverForSky, Tvmake, Warrantycover, Payingmonthly, Agentnotes, Agentname) 
VALUES 
(NOW(),'$_POST[Receivingsky]','$_POST[Title]','$_POST[Firstname]', 
'$_POST[Lastname]','$_POST[House]','$_POST[Street]','$_POST[Town]','$_POST[County]', 
'$_POST[Postcode]','$_POST[Number]','$_POST[WarrantyCoverForSky]','$_POST[Tvmake]', 
'$_POST[Warrantycover]','$_POST[Payingmonthly]','$_POST[Agentnotes]', 
'$_POST[Agentname]')"; 
$sql_result = mysql_query($sql, $con) or die (mysql_error()); 

$sql2="INSERT INTO dupphones (date, Number) 
Values 
(NOW(),'$_POST[Number]')"; 
$sql_result = mysql_query($sql2, $con2) or die (mysql_error()); 

echo '<html> 
<head> 

请注意,您的疑问仍然容易受到SQL注入。使用转义或准备语句来摆脱sql注入。

0

只是咨询几句。在提交之前清理您的$ _POST数据。并考虑使用主键。另外,为什么你建立一个新的连接来运行第二个查询?

mysql_real_escape()

你得到的两个查询,因为你做

if (!mysql_query($sql,$con)) { 
    die('Error: ' . mysql_error()); 
    } 

再次运行查询至少使用。您已经在上面运行过一次

$sql_result = mysql_query($sql, $con) or die (mysql_error());