Php 使用一个表单将数据插入多个表
我试图使用一种表单在两个表中插入数据 这是我的表格Php 使用一个表单将数据插入多个表,php,mysql,Php,Mysql,我试图使用一种表单在两个表中插入数据 这是我的表格 <form action="don.php" method="post"> <tr><td> <p> <label for="nume">Nume:</label></td> <td><input type="text" name="nume" id="nume" autocomplete="off"&g
<form action="don.php" method="post">
<tr><td>
<p>
<label for="nume">Nume:</label></td>
<td><input type="text" name="nume" id="nume" autocomplete="off"></td>
</p>
</tr>
<tr><td>
<p>
<label for="prenume">Prenume:</label></td>
<td> <input type="text" name="prenume" id="prenume" autocomplete="off"></td>
</p></tr>
<tr><td>
<p>
<label for="grupa">Numar telefon:</label></td>
<td><input type="text" name="numar" id="numar" autocomplete="off"></td>
</p></tr>
<tr><td>
<p>
<label for="grupa">Suma:</label></td>
<td><input type="text" name="suma" id="suma" autocomplete="off"></td>
</p></tr>
<tr><td>
<p>
<label for="grupa">Data:</label></td>
<td><input type="text" name="data" id="data" autocomplete="off"></td>
</p></tr>
<tr><td>
<p>
<label for="grupa">IBAN:</label></td>
<td><input type="text" name="iban" id="iban" autocomplete="off"></td>
</p></tr>
<tr><td><input type="submit" name="submit" value="Donează" onclick="alert('Operatiune finalizata cu succes. Va multumim!')"></td>
</form>
Nume:
Prenume:
Numar telefon:
苏马:
数据:
伊班:
这是我的PHP代码
<?php
if(isset($_POST['submit'])){
$con=mysql_connect("localhost","root","");
if(!$con)
{
die("Nu se poate face conexiunea la baza de date" . mysql_error());
}
mysql_select_db("laborator",$con);
$sql="INSERT INTO donator (nume, prenume, numar_telefon) VALUES ('$_POST[nume]','$_POST[prenume]','$_POST[numar]')";
$sql="INSERT INTO donatie (suma, data_donatie, IBAN) VALUES ('$_POST[suma]','$_POST[data]','$_POST[iban]')";
mysql_query($sql,$con);
mysql_close($con);
}
?>
使用相同的变量$sql
运行查询。你应该这样称呼他们,然后再称呼他们
$sql="INSERT INTO donator (nume, prenume, numar_telefon) VALUES ('mysql_real_escape_string($_POST[nume])','mysql_real_escape_string($_POST[prenume])','mysql_real_escape_string($_POST[numar])')";
$sql2="INSERT INTO donatie (suma, data_donatie, IBAN) VALUES ('mysql_real_escape_string($_POST[suma])','mysql_real_escape_string($_POST[data])','mysql_real_escape_string($_POST[iban])')";
否则,您必须通过保护post值来更改它们
然后,您必须为PHP切换到新的mysql语法,如mysqli或PDO。您正在使用的mysql语法已被弃用。您必须为每个查询调用mysql\u query()
$sql1 = "INSERT INTO donator ...";
$sql2 = "INSERT INTO donatie ...";
mysql_query($sql1, $con);
mysql_query($sql2, $con);
重要
mysql\u query()
已被弃用!请使用mysqli\u query()
您还可以使用mysqli\u multi\u query()
您正在覆盖$sql变量。将它们另存为单独的变量,或者在声明第二个查询之前运行第一个查询
你说,你应该考虑两个PDO或MySQLi来代替查询,而不是MySQL扩展,也可以查看准备好的语句并适当地清理字符串,因为你对SQL注入非常脆弱。
< P>这样使用它会很好。
<?php
$GLOBALS['server']="localhost";
$GLOBALS['username']="root";
$GLOBALS['password']="*****";
$GLOBALS['database']="performance";
$GLOBALS['conn']= mysqli_connect($server,$username,$password,$database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//echo "Connected successfully";
$GLOBALS['db'] = mysqli_connect($server,$username,$password,$database);
$sql="INSERT INTO animals (id,name) VALUES('2211','vidya');";
$sql .="INSERT INTO birds (id,fame) VALUES('2211','viddi');";
//mysqli_query($conn,$sql);
//mysqli_query($conn,$sql1);
if (mysqli_multi_query($GLOBALS['db'], $sql)) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
这是为多个表插入一个表单数据的示例
这里html表单有一个提交按钮。“确定”名称是提交按钮的名称
<?php
ob_start();
session_start();
$con=mysqli_connect("localhost","root","","cultureframework");
if(mysqli_connect_errno())
{
echo "Failed to connect to MySql:".mysqli_connect_error();
}
?>
<?php
if(isset($_POST['ok']))
{
$ip=$_POST['ip'];
$date=$_POST['date'];
$gender=$_POST['gender'];
$age=$_POST['age'];
$tenure=$_POST['tenure'];
//-------------------------------------
$caring_past_1=$_POST['caring_past_1'];
$caring_present_1=$_POST['caring_present_1'];
$caring_future_1=$_POST['caring_future_1'];
$caring_past_2=$_POST['caring_past_2'];
$caring_present_2=$_POST['caring_present_2'];
$caring_future_2=$_POST['caring_future_2'];
//-------------------------------------
$insert="INSERT INTO `generalinfo`(`ip`,`datez`,`gender`,`age`,`tenure`) VALUES('$ip','$date','$gender','$age','$tenure')";
$query=mysqli_query($con,$insert);
$ins="INSERT INTO `caring`(`caring_past_1`,`caring_present_1`,`caring_future_1`,`caring_past_2`,
`caring_present_2`,`caring_future_2`) VALUES('$caring_past_1','$caring_present_1','$caring_future_1','$caring_past_2','$caring_present_2','$caring_future_2')";
$quy=mysqli_query($con,$ins);
}
?>
mysqli的多查询功能运行良好。您还可以接受一些大规模的SQL注入。重要提示:验证您的输入:我已经尝试以不同的方式调用它们。而且它对sql也不起作用。。。因为你必须用不同的问题给他们打电话欢迎你这么做。如果你也能解释一下为什么你的建议会起作用,以及OP可能在哪里出错,那就太好了。
<?php
ob_start();
session_start();
$con=mysqli_connect("localhost","root","","cultureframework");
if(mysqli_connect_errno())
{
echo "Failed to connect to MySql:".mysqli_connect_error();
}
?>
<?php
if(isset($_POST['ok']))
{
$ip=$_POST['ip'];
$date=$_POST['date'];
$gender=$_POST['gender'];
$age=$_POST['age'];
$tenure=$_POST['tenure'];
//-------------------------------------
$caring_past_1=$_POST['caring_past_1'];
$caring_present_1=$_POST['caring_present_1'];
$caring_future_1=$_POST['caring_future_1'];
$caring_past_2=$_POST['caring_past_2'];
$caring_present_2=$_POST['caring_present_2'];
$caring_future_2=$_POST['caring_future_2'];
//-------------------------------------
$insert="INSERT INTO `generalinfo`(`ip`,`datez`,`gender`,`age`,`tenure`) VALUES('$ip','$date','$gender','$age','$tenure')";
$query=mysqli_query($con,$insert);
$ins="INSERT INTO `caring`(`caring_past_1`,`caring_present_1`,`caring_future_1`,`caring_past_2`,
`caring_present_2`,`caring_future_2`) VALUES('$caring_past_1','$caring_present_1','$caring_future_1','$caring_past_2','$caring_present_2','$caring_future_2')";
$quy=mysqli_query($con,$ins);
}
?>