Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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
如何使用用户的输入在SQL中填充表?PHP_Php_Html_Mysql_Pdo - Fatal编程技术网

如何使用用户的输入在SQL中填充表?PHP

如何使用用户的输入在SQL中填充表?PHP,php,html,mysql,pdo,Php,Html,Mysql,Pdo,从PHP开始。我的代码通过表单获取用户输入,并将输入输入到mySQL表中。代码没有解析错误。但当用户提交他们的姓名和电子邮件时。它没有进入桌子,桌子仍然是空的,我似乎无法解决问题。这是我的密码: <div id="main"> <h1>Insert data into database using PDO</h1> <div id="login"> <h2>Students Form</h2> <hr/

从PHP开始。我的代码通过表单获取用户输入,并将输入输入到mySQL表中。代码没有解析错误。但当用户提交他们的姓名和电子邮件时。它没有进入桌子,桌子仍然是空的,我似乎无法解决问题。这是我的密码:

<div id="main">
<h1>Insert data into database using PDO</h1>
<div id="login">
    <h2>Students Form</h2>
    <hr/>
    <form action="" method="post">
        <label>Student Name :</label>
        <input type="text" name="name" id="Fname" required="required" placeholder="Please Enter Your Name"/><br/><br/>
        <label>Student Email :</label>
        <input type="text" name="email" id="email" required="required" placeholder="Pear@gmsil.com"/><br/><br/>
        <input type="submit" value=" Submit " name="submit"/><br/>
    </form>
</div>
</div>
<?php
//server name
$db_hostname = "lll";
//database name 
$db_database = "lll";
//username
$db_username = "lll";
$db_password = "lll;";
$db_charset = "utf8mb4";
//a string specifying the database type, the hostname and name of the   database
$dsn = "mysql:host=$db_hostname;dbname=$db_database;charset=$db_charset";
          $opt = array(PDO::ATTR_ERRMODE         =>  PDO::ERRMODE_EXCEPTION,
          PDO::ATTR_DEFAULT_FETCH_MODE =>PDO::FETCH_ASSOC,
          PDO::ATTR_EMULATE_PREPARES => false
      );

  try {
   //create connection
$pdo = new PDO($dsn,$db_username,$db_password,$opt);

if (isset($_POST["submit"])) {   

      $pdo->setAttribute(PDO::ATTR_ERRMODE,
          PDO::ERRMODE_EXCEPTION); 
    $sql = "INSERT INTO students (name,email)";
          VALUES ('". $_POST["name"] ."','" . $_POST["email"] . "');
   if ($pdo->query($sql)) {
        echo "<script type= 'text/javascript'>alert('New Student Inserted Successfully');</script>";
     } else {
         echo "<script type= 'text/javascript'>alert('Data not successfully  Inserted.');</script>";
        }
 }
    } catch (PDOException $e) {
          echo $e->getMessage();
    }
?>

使用PDO将数据插入数据库
学生表格

学生姓名:

学生电邮:



在编写SQL语句的代码行中,您在查询的后半部分之前额外放置了一个
“;

改变

$sql = "INSERT INTO students (name,email)";
      VALUES ('". $_POST["name"] ."','" . $_POST["email"] . "');


这应该可以解决插入失败的问题。

您的脚本可能会出现错误,请查看使用时发生的情况。您有一个明显的语法错误。您应该在页面或空白页面上显示该错误。
$sql=“插入学生(姓名、电子邮件)";
<这是PHP中的一个有效语句,它结束了您的语句。我认为这是一个输入错误。
$pdo->setAttribute(pdo::ATTR_ERRMODE,pdo::ERRMODE_EXCEPTION)为什么在
if(isset($\u POST[“submit”]){…}
中有这个?这是另一个打字错误。正确解决眼前的问题,或者至少解决其中一个问题。但是,他们应使用事先准备好的声明:
$sql = "INSERT INTO students (name,email) VALUES ('". $_POST["name"] ."','" . $_POST["email"] . "');