使用PHP插入显示为下载而不是执行

时间:2011-07-23 14:56:19

标签: php html insert execute

很抱歉,如果这已经存在,但我无法在任何地方找到它。

我正在尝试将表单中的信息插入名为“test”的数据库中名为“instest”的表中。 “instest”表中的列是“firstName”,“lastName”和“age”。

问题是,每次点击提交按钮时,它都会显示为下载(IE)或代码显示(Opera),而不是实际执行的代码。

以下是代码:

/* TestInsert.php */

<!DOCTYPE HTML>
<html>
<body>
    <form action="Insert.php" method="post">
        Firstname: <input type="text" name="firstname" />
        Lastname: <input type="text" name="lastname" />
        Age: <input type="text" name="age" />
        <input type="submit" />
    </form>
</body>
</html>
/* Insert.php */

<?php

    $con = mysql_connect("localhost","root@localhost"); //No password
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("test", $con);

    $sql="INSERT INTO instest (firstName, lastName, age)
    VALUES
    ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

    if (!mysql_query($sql,$con))
    {
        die('Error: ' . mysql_error());
    }
    echo "1 record added";

    mysql_close($con)
?>

3 个答案:

答案 0 :(得分:3)

尝试添加value="submit"浏览器更喜欢正确的html

答案 1 :(得分:0)

您似乎忘记在Insert.php中使用<?php<?打开PHP代码(前者是最兼容的,因此也是首选版本)。

答案 2 :(得分:0)

我认为你有这个错误:

$sql="INSERT INTO instest (firstName, lastName, age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

尝试将其更改为:

$sql="INSERT INTO instest (firstName, lastName, age)
VALUES
('". $_POST[firstname] ."','". $_POST[lastname] ."','". $_POST[age] ."')";

我知道你可以在里面有变量(“我个人认为它的不良做法而且速度较慢)我认为你会遇到post var的常见问题以及php如何解释它。

您应该启用error_reporting,因为它会反映出来。