HTML表单到MYSQL DB获取PHP POST错误

HTML表单到MYSQL DB获取PHP POST错误,php,html,mysql,forms,post,Php,Html,Mysql,Forms,Post,所以我一直在尝试创建一个简单的HTML表单,将用户信息提交到本地MYSQL数据库。当我尝试运行它时,我得到“cannotpost/test/addperson.php”。我已经尝试了很多其他的解决方案,但是没有一个是有效的 HTML 用户数据库 名字: 姓氏: PHP 像这样使用准备好的语句。出于安全原因,请勿使用MYSQL_uu函数。 如果它是一个简单的页面,请使用以下代码。只需创建一个php页面并粘贴以下代码 <?php $servername = "yourservern

所以我一直在尝试创建一个简单的HTML表单,将用户信息提交到本地MYSQL数据库。当我尝试运行它时,我得到“cannotpost/test/addperson.php”。我已经尝试了很多其他的解决方案,但是没有一个是有效的

HTML


用户数据库

名字:

姓氏:


PHP


像这样使用准备好的语句。出于安全原因,请勿使用MYSQL_uu函数。
如果它是一个简单的页面,请使用以下代码。只需创建一个php页面并粘贴以下代码

<?php 

$servername = "yourservername";
$username = "root";
$password = "yourpassword";

try 
    {
    $conn = new PDO("mysql:host=$servername;dbname=yourdatabse", 
    $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e)
    {
        echo "Connection failed: " . $e->getMessage();
    }

 if($_SERVER['REQUEST_METHOD'] == 'POST')
 {

    $first_name=$_POST['first_name'];
    $last_name=$_POST['last_name'];

    //a little protection
    $first_name=htmlentities( $first_name, ENT_QUOTES | ENT_HTML5, 
    $encoding = 'UTF-8' );

    $last_name=htmlentities( $last_name, ENT_QUOTES | ENT_HTML5, 
    $encoding = 'UTF-8' );

    //save to database
    $query = 'INSERT INTO employees (first_name, last_name) VALUES 
    (:name,:lastname)';

    $st=$conn->prepare($query);
    $st->bindParam(':name', $first_name);
    $st->bindParam(':lastname', $last_name);
    $st->execute();
    $st->CloseCursor();
    $st=null;
 }
?>

 <!DOCTYPE html>
      <html>
            <body>
                  <h2>User Database</h2> <br>
                  <form action="" method="post">
                      <p>First Name: </p>
                      <input type="text" name="first_name">
                      <p>Last Name: </p>
                      <input type="text" name="last_name"><br>
                      <input type="submit" name="submit">
                  </form>
            </body>
      </html>

用户数据库
名字:

姓氏:



您需要稍微修改代码,并在插入查询中添加引号:

$user_info = "INSERT INTO employees (first_name, last_name) VALUES ('".$_POST['first_name']."', '".$_POST['last_name']."')";
但是,正如其他人所说,有更好的方法可以做到这一点,请准备好声明。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO。说。即使是这样也不安全!无法POST/test/addperson.php您确定文件所在的位置吗?您是否查看了错误日志以了解更多信息?
<?php 

$servername = "yourservername";
$username = "root";
$password = "yourpassword";

try 
    {
    $conn = new PDO("mysql:host=$servername;dbname=yourdatabse", 
    $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e)
    {
        echo "Connection failed: " . $e->getMessage();
    }

 if($_SERVER['REQUEST_METHOD'] == 'POST')
 {

    $first_name=$_POST['first_name'];
    $last_name=$_POST['last_name'];

    //a little protection
    $first_name=htmlentities( $first_name, ENT_QUOTES | ENT_HTML5, 
    $encoding = 'UTF-8' );

    $last_name=htmlentities( $last_name, ENT_QUOTES | ENT_HTML5, 
    $encoding = 'UTF-8' );

    //save to database
    $query = 'INSERT INTO employees (first_name, last_name) VALUES 
    (:name,:lastname)';

    $st=$conn->prepare($query);
    $st->bindParam(':name', $first_name);
    $st->bindParam(':lastname', $last_name);
    $st->execute();
    $st->CloseCursor();
    $st=null;
 }
?>

 <!DOCTYPE html>
      <html>
            <body>
                  <h2>User Database</h2> <br>
                  <form action="" method="post">
                      <p>First Name: </p>
                      <input type="text" name="first_name">
                      <p>Last Name: </p>
                      <input type="text" name="last_name"><br>
                      <input type="submit" name="submit">
                  </form>
            </body>
      </html>
$user_info = "INSERT INTO employees (first_name, last_name) VALUES ('".$_POST['first_name']."', '".$_POST['last_name']."')";