PHP post请求中没有显示任何内容

时间:2017-08-18 21:04:30

标签: php mysql database mamp

问题

我正在尝试使用PHP连接MySQL数据库中的用户输入表单。我正在使用MAMP在本地连接数据库。当我运行代码时,不显示任何内容。下面的代码在名为EventInputForm的文件夹中保存为IndexEventInputForm.php。在网址中,我有http://localhost:8888/EventInputForm/IndexEventInputForm.php。检查我得到的元素:

enter image description here

代码

    <!DOCTYPE html>
<html lang="en">

<head>

</head>

<?php 

//===============
// MySQL Settings
//===============    

define('DB_NAME', 'EventInputForm');    
define('DB_USER', 'root');
define('DB_PASSWORD', '12345678');
define('DB_HOST', 'localhost');    

//====================    
// Database connection  
//====================

    //Connect to server
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);    

    //Test if connection to database works
if(!$link) {
    die('Could not connect to : ' . mysql_error());
}    

    //Connect to database
$db_selected = mysql_select_db(DB_NAME, $link);    

    //Test if connection to selected database works
if(!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}    

echo 'Connected successfully';

/*    
if($conn->connect_error){
    die("Failed");
}

    $conn.insertInto
echo "Success";
*/

    //Send input form data to MySQL database    
$Title = $_POST['Title'];

$sql = "INSERT INTO EventInfo (Title) VALUES ('$Title')";    

    //Checks if the field exists
if(!mysql_query($sql)) {
    die('Error: ' . mysql_error());
}  

mysql_close();  

?>

<body>

<?php
    echo $name;
?>

    <form action="/EventInputForm/IndexEventInputForm.php" method="POST">
        <input type="text" name="Title"/>

        <input type="submit" value="indsend">
    </form>

</body>



</html>

2 个答案:

答案 0 :(得分:1)

我注意到一些问题:

  • 您正在回显变量$ name,但没有这样的变量 在你的剧本中定义。

  • 您正在使用mysql_ *而不是mysqli_ *函数。

要解决这两个问题并帮助您查看结果,请参阅下面的测试示例。 ****请注意:准备好的陈述应该用于制作。

if (!isset($_POST['Title'], $_POST['indsend']))
    echo "Submit form below! \n";
else {

    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

    // sanitize user input
    $title = $mysqli->real_escape_string($_POST['Title']);

    // execute query
    $mysqli->query("INSERT INTO EventInfo (Title) VALUES ('$title')");

    printf ("New Record has id %d.\n", $mysqli->insert_id);

}

答案 1 :(得分:1)

这样可以更好。

   <?php 

    //===============
    // MySQL Settings
    //===============    

    define('DB_NAME', 'EventInputForm');    
    define('DB_USER', 'root');
    define('DB_PASSWORD', '12345678');
    define('DB_HOST', 'localhost');    

    //====================    
    // Database connection  
    //====================

        //Connect to server
    $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);    

      // Test if connection succeeded
    if(mysqli_connect_errno()) {
    die("Database connection failed: " . 
         mysqli_connect_error() . 
         " (" . mysqli_connect_errno() . ")"
    );
  }

        //Send input form data to MySQL database 
if(isset($_POST['submit'])){
    $Title = $_POST['Title'];

    $sql = "INSERT INTO EventInfo (Title) VALUES ('{$Title}')";    

       $result = mysqli_query($link, $sql);
     if ($result) {
      // Success
      echo "Title has been created!";
    } else {
      // Failure
      echo "Failed";
    }
    }

    ?>
 <!DOCTYPE html>
    <html lang="en">

    <head>

    </head>

    <body>

        <form action="IndexEventInputForm.php" method="POST">
            <input type="text" name="Title"/>

            <input type="submit" name="submit" value="indsend">
        </form>

    </body>

    </html>

    <?php
   // Close database connection
    if (isset($link)) {
      mysqli_close($link);
    }
   ?>

注意:为了简单起见,我删除了一些不必要的回声和字段

相关问题