Php 无法从表单获取数据到我的mysql数据库

Php 无法从表单获取数据到我的mysql数据库,php,html,mysql,pbo,Php,Html,Mysql,Pbo,我无法让我的代码在php中工作 我想将数据从html格式的表单移动到我的mysql数据库,但它不起作用 组成部分 <form action ="Mydbsinsertpersson4.php" method='POST'> <table> <tr><td width='100'>För namn:<input type='text' name='fnamn'><td></tr> <tr><

我无法让我的代码在php中工作 我想将数据从html格式的表单移动到我的mysql数据库,但它不起作用

组成部分

 <form action ="Mydbsinsertpersson4.php" method='POST'>
 <table>
 <tr><td width='100'>För namn:<input type='text' name='fnamn'><td></tr>
 <tr><td width='100'>Efternamn:<input type='text' name='enamn'><td></tr>
 </table>
 <tr><td><input type='submit' name='Submit'  value='Submit'><td></tr>
 </form>

För namn:
Efternamn:
php部分

<?php
    if(isset($_POST["submit"])){
require_once 'Mydbconfig.php';
try {
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "INSERT INTO tpersson (Perfnamn, Perenamn)
VALUES ('".$_POST["fnamn"]."','".$_POST["enamn"]."')";
$conn = null;
}
catch(PDOException $e){
echo $e->getMessage();
}
}
?>
问题是:-

<tr><td><input type='submit' name='Submit'  value='Submit'><td></tr>

注意:-在第一个文件中更改
name=submit
,或在第二个文件中更改
$\u POST[“submit”]
。谢谢。

我喜欢使用两个文件,一个用于处理输入,另一个用于实际表单

form.html:

<form action ="/assets/post_people.php" method='POST'>
<table>
<tr><td width='100'>Firstname:<input type='text' name='fname'><td></tr>
<tr><td width='100'>Lastname:<input type='text' name='lname'><td></tr>
</table>
<tr><td><input type='submit' name='Submit'  value='Submit'><td></tr>
</form>

名字:
姓氏:
现在,对于post_people.php:

<?php
//db 
require_once 'db_connect.php';


//Get and filter input @ to avoid injections
$Firstname = mysql_real_escape_string($_POST['fname']);
$Lastname = mysql_real_escape_string($_POST['lname']);


//Check if the user has submitted the form
if(isset($_POST['Submit'])){


    //Check if the person already exist in our database
    $Check_people = mysql_query("SELECT * FROM People WHERE Firstname =     '$Firstname' AND Lastname = '$Lastname'");

if(mysql_num_rows($Check_people)==1){
    //The person already exists with exact same data!
}

//The person did not exist in our database, so we'll update.
else{


    $update_query = mysql_query("INSERT INTO People (Firstname, Lastname) VALUES ('$Firstname', '$Lastname')");

    if($update_query){
        //success
    }
    else {
        //Error

    }

}

mysql_close();  
}


//The user didnt submit the form and tried to access the file ?
//Redirect to /form.html & kill the script.
else{
header("Location: /form.html");
die;
}
错误
  • 提交标签名称不正确
    name='submit'
  • 改进HTML编码格式(
    标记应在最后一个
    标记后关闭)
  • 使用
    mysql\u real\u escape\u string()避免
  • 所以你的最终代码是

     <form action ="Mydbsinsertpersson4.php" method='post'>
         <table>
         <tr><td width='100'>För namn:<input type='text' name='fnamn'><td></tr>
         <tr><td width='100'>Efternamn:<input type='text' name='enamn'><td></tr>
    
         <tr><td><input type='submit' name='submit'  value='Submit'><td></tr>
         </table>
     </form>
    

    您在哪里执行sql变量?我的意思是像mysql_查询(sql);或者你没有执行你的查询。。。还可以像@anant kumar在下面的回答中所说的那样进行更改,感谢它修复了其中的一部分,但并不是所有的happendsetAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)$sql=“插入到tperson(Perfnamn,Perenamn)值中(“$\u POST[“fnamn”]。”,“$\u POST[“enamn”]。”)”;if($conn->query($sql)){echo“成功”}else{echo“失败”}$conn=null;}catch(PDOException$e){echo$e->getMessage();}}}?>执行查询。您没有执行查询。(!)警告:mysql\u real\u escape\u string():在C:\wamp\www\mydb\mydbinsertpersson4.php的第3行(!)中拒绝用户“@”localhost”(使用密码:YES)的访问警告:mysql\u real\u escape\u string():无法在第3行的C:\wamp\www\mydb\mydbinsertpersson4.php中建立到服务器的链接这是问题$Firstname=mysql\u real\u escape\u string($\u POST['fname']);使用这个
    $mysqli->real\u escape\u字符串($\u POST[“fnamn”]),检查答案仍然是相同的问题!!
    
     <form action ="Mydbsinsertpersson4.php" method='post'>
         <table>
         <tr><td width='100'>För namn:<input type='text' name='fnamn'><td></tr>
         <tr><td width='100'>Efternamn:<input type='text' name='enamn'><td></tr>
    
         <tr><td><input type='submit' name='submit'  value='Submit'><td></tr>
         </table>
     </form>
    
     <?php
        if(isset($_POST["submit"])){
            require_once 'Mydbconfig.php';
            try {
                $conn = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
            // set the PDO error mode to exception
                $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
                $fname = $mysqli->real_escape_string($_POST["fnamn"]);
                $ename = $mysqli->real_escape_string($_POST["enamn"]);
    
                $sql = "INSERT INTO tpersson (Perfnamn, Perenamn) VALUES ('$fname','$ename')";
                $conn = null;
            }
            catch(PDOException $e){
                echo $e->getMessage();
            }
        }
    ?>