Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用一个表单将数据插入多个表_Php_Mysql - Fatal编程技术网

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);   
}

?>