0

这不会很快上线。我只是想学习 PHP/MySQL。这是我第一次尝试插入数据库。我无法弄清楚为什么数据不会插入。这是 HTML 表单:

    <form action="testdbserverside.php" method="post">
    Name:<br />
    <input type="text" id="ContactName" name="Name" /><br />
    E-mail:<br />
    <input type="text" id="ContactEmail" name="Email" /><br />
    Comment:<br />
    <input type="text" id="ContactComment" name="Comment" size="50" />
    <br /><br />
    <input type="submit" id="submit" name="submit" value="Send">
    <input type="reset" id ="reset" value="Reset">
    </form>

这是PHP:

    <?php
     $ContactName = $_POST["ContactName"];
     $ContactEmail = $_POST["ContactEmail"];
     $ContactComment = $_POST["ContactComment"];

     $sql_connection = mysqli_connect("localhost:8889","root","root","derek_website_tmp");

     if (mysqli_connect_errno())
        {
         echo "failed to connect" . mysqli_connect_error();
        }

     $sql = "INSERT INTO MyContacts (

                ContactName,
                ContactEmail,
                ContactComment,
                ContactDateCreated
            )
            VALUES (
              '$ContactName',
              '$ContactEmail',
              '$ContactComment',
              NOW()
        )";

     if (!mysqli_query($sql_connection,$sql))
        {
        die('Error : ' . mysqli_error($sql_connection));
        }

     mysql_close ($sql_connection);

    ?>

这是数据库:

    mysql> USE derek_website_tmp;
    Database changed
    mysql> CREATE TABLE MyContacts  (
        -> ContactID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        -> ContactName VARCHAR(100),
        -> ContactEmail VARCHAR(100),
        -> ContactComment VARCHAR(200),
        -> ContactDateCreated DATETIME
        -> );
    Query OK, 0 rows affected (0.19 sec)

任何帮助将不胜感激。我意识到这并没有对任何东西进行消毒,也不值得上线。我现在正在努力让它插入。

谢谢,

4

3 回答 3

1
$ContactName = $_POST["ContactName"]; 
$ContactEmail = $_POST["ContactEmail"]; 
$ContactComment = $_POST["ContactComment"];

应该:

$ContactName = $_POST["Name"]; 
$ContactEmail = $_POST["Email"]; 
$ContactComment = $_POST["Comment"];

是你的name参数而不是id

您的查询应该是:

$sql = "INSERT INTO MyContacts (ContactName, ContactEmail, ContactComment, ContactDateCreated ) VALUES ( "'.$ContactName.'", "'.$ContactEmail.'", "'.$ContactComment.'", NOW() )";
于 2013-09-17T02:32:41.777 回答
0

您试图从“ID”而不是“NAME”属性中读取值。

表单可以这样修改(ID部分在表单提交方面是可选的):

Name:<br />
<input type="text" id="ContactName" name="ContactName" /><br />
E-mail:<br />
<input type="text" id="ContactEmail" name="ContactEmail" /><br />
Comment:<br />
<input type="text" id="ContactComment" name="ContactComment" size="50" />

您的所有其余代码都应该可以正常工作。

仅供参考,您可以使用print_r()var_dump()打印给定变量的内容。

<?
// this will show what really is coming in through the $_POST
print_r($_POST);
?>
于 2013-09-17T02:36:32.373 回答
0

在您的 PHP 页面中,您通过 id 收集值,它不会像您必须通过文本字段名称收集值一样

$ContactName = $_POST["Name"];
$ContactEmail = $_POST["Email"];
$ContactComment = $_POST["Comment"];  

我认为这会很好。

于 2013-09-17T02:41:57.270 回答