0

我是网络开发的新手。在这段代码中,我试图创建一个表单,其中 index.php 中的表单将信息发送到数据库。我的 list.php 应该显示输入的用户列表。但是,我的 index.php 不会将数据发送到数据库。我在 phpMyAdmin 中的数据库绝对是空的。我不知道我的错误可能在哪里。请帮忙。//配置.php

<?php
$dbhost = 'mysql51-031.wc2.dfw1.stabletransit.com';
$dbuser = '549359_sargis';
$dbpass = '*********';
$dbname = '549359_sargis';
$table  = 'Contacts';

$connection = mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
$select_db = mysql_select_db($dbname,$connection) or die(mysql_error());
?>

// index.php

<!DOCTYPE html>
<hmtl>
<head>
    <title>Dashboard</title>

    <?php include("config.php"); ?>

    <link rel="stylesheet" type="text/css" href = "style.css">

<?php

if(isset($_POST['submit']))
{
    $firstname = $_POST['firstname'];
    $lastname  = $_POST['lastname'];
    $email     = $_POST['email'];
    $phone     = $_POST['phonenumber'];

    //$date      = date('l jS \of F Y h:i:s A');

    $sql = "INSERT INTO " . $table . " (firstname, lastname, email, phone_number, timesstamp) VALUES ('$firstname' , '$lastname' , '$email' , '$phonenumber', NOW())";
    $query = mysql_query($sql);

    if (!$query)
    {
        die('Error: ' . mysql_error());
    }

}

?>


</head>

<body>
        <a href="list.php">View List</a><hr/>

<form action="index.php" method = "POST">
    <div>
        First name: <input type ='text' id='firstname' name='firstname'/><br />
        Last name: <input type = 'text' id='lastname' name='lastname'/><br />
        Email: <input type = 'text' id='email' name='email'/><br />
        Phone Number: <input type = 'text' id='phone_number' name='phonenumber'/><br />
        <input type = 'submit' value='Add' />
    </div>
</form>

</body>
</html>
4

3 回答 3

0

将变量包裹在花括号中:

$sql = "INSERT INTO " . $table . " (firstname, lastname, email, 
                                    phone_number, timesstamp) VALUES 
           ('{$firstname}' , '{$lastname}' , '{$email}' , '{$phonenumber}',
           '{$date}')";
    $query = mysql_query($sql);

看看是否有帮助。

于 2013-09-01T05:31:44.080 回答
0

假设您发布index.php问题的内容似乎是您提交表单,list.php但您的数据处理代码位于index.php.

<form action="list.php" method = "POST">
             ^^^^^^^^^^

难怪您没有任何错误消息并且表中没有数据。这是因为您的代码没有被执行。

因此,要么将您的数据处理代码移动到,list.php要么制作一个自我提交的表单,将action属性值留空

<form action="" method = "POST">
             ^^

list.php并在成功插入数据后重定向到。

现在,如果您timestamp的类型datetimetimestamp然后更改

$date = date('l jS \of F Y h:i:s A'); 

$date = date('Y-m-d h:i:s');

或更改您的查询字符串以使用 MySql 的构建函数NOW()或.CURRENT_TIMESTAMPNOW()

$sql = "INSERT INTO " . $table . " (firstname, lastname, email, phone_number, timesstamp) 
        VALUES ('$firstname', '$lastname', '$email', '$phonenumber', NOW())";

附带说明:不要插入查询字符串,而是使用带有or的准备好的语句。在当前状态下,您的代码对 SQL 注入开放,并且您使用不推荐使用的扩展。mysqli_*PDOmysql_*

于 2013-09-01T05:33:30.180 回答
0

1)添加name='submit'到您的表单按钮。因为if(isset($_POST['submit'])). 这种情况总是false在你的代码中。

<input type='submit' name='submit' value='Add' />
                <!-- ^^^^ -->

2)您的表单操作设置为action="list.php",表单数据将提交到此文件。

确保您的数据库插入查询位于正确的文件中:list.php. 这意味着您应该将if(isset($_POST['submit'])){ ... }块移动到list.php或将表单操作更改为action="index.php"(当前文件)。

<form action="index.php" method="post">
         <!-- ^^^^^^^^^ -->

3)在代码顶部添加这些行以打开错误以检测发生了什么。

ini_set('display_errors',1);
error_reporting(E_ALL);

4)添加var_dump($_POST)检查您的表单数据是否成功提交。所以输出应该是表单数据的数组。否则你走错路了。

if(isset($_POST['submit'])) {
    var_dump($_POST);

5) MySQL 中的日期时间格式应该是YYYY-MM-DD HH:MM:SS. 使用 MySQL 方法而不是$date获取当前时间戳CURRENT_TIMESTAMP()

$sql = "INSERT INTO " . $table . " 
    (firstname, lastname, email, phone_number, timesstamp) 
VALUES 
    ('$firstname', '$lastname', '$email', '$phonenumber', CURRENT_TIMESTAMP())";
于 2013-09-01T05:33:43.247 回答