PHP MySQL插入表单不起作用

时间:2014-02-17 04:49:00

标签: php mysql sql

我有一个名为“culvers”的MySQL数据库,其中包含user_id INT(4)自动递增,full_name varchar(20)和user_name varchar(20)。我正在尝试使用此HTML表单向表中添加值,但它无法正常工作。我已经探索了几十个教程和帮助网站,但它仍然无法正常工作。我甚至将代码放在另一个托管服务提供商上,看看是不是问题。当我点击“添加”时,我被带到一个空白页面(这是预期的,因为我没有成功/错误消息)但表单数据没有插入到数据库表中。

另外,我知道我应该清理我的输入,但现在不是问题。 (至少我不这么认为)

这是form.html代码:

<html>
    <head>
        <title>Add User to Table</title>
    </head>
    <body>
        <h1>Add User</h1>
        <form action="adduser.php" method="POST">
            <label>Full name:</label>
            <input id="postname" type="text" name="fullname">
            <label>Username:</label>
            <input id="postuser" type="text" name="username">
            <input type="submit" name="submit" value="Add">
        </form>
    </body>
</html>

这是adduser.php代码:

<?php
if(isset($_POST['submit'])){
    $connection =  mysql_connect("localhost", "xxxx", "xxxxxxxxxx");
    mysql_select_db("culvers");
    $fullnameOfUser = $_POST['fullname'];
    $usernameOfUser = $_POST['username'];
    $sql = "INSERT INTO users (full_name, user_name) VALUES ('$fullnameOfUser', '$usernameOfUser');
    $result = mysql_query($sql, $connection);
    mysql_close($connection);
}else{
    echo "Error no form data";
}
?>

非常感谢你的帮助!

5 个答案:

答案 0 :(得分:0)

你忘了关闭双引号!

'$fullnameOfUser', '$usernameOfUser')"; 
                                 ----^ // Add one there

正确的代码。

$sql = "INSERT INTO `users` (`full_name`, `user_name`) VALUES ('$fullnameOfUser', '$usernameOfUser')";

您需要认真切换到PreparedStatements,因为您的上述代码直接倾向于SQL注入。

答案 1 :(得分:0)

你在这行中有错误:

$sql = "INSERT INTO users (full_name, user_name) VALUES ('$fullnameOfUser', '$usernameOfUser');

你没有结尾"

这一行应该是:

$sql = "INSERT INTO users (full_name, user_name) VALUES ('$fullnameOfUser', '$usernameOfUser')";

您应该使用mysqli_*PDO,因为mysql_*的所有功能都已弃用。

答案 2 :(得分:0)

您错过了SELECT Query

末尾的双引号
 $sql = "INSERT INTO users (full_name, user_name) VALUES ('$fullnameOfUser', '$usernameOfUser')";

答案 3 :(得分:0)

首先,如果它不是拼写错误,则需要为查询添加双引号。

 $sql = "INSERT INTO users (full_name, user_name) VALUES ('$fullnameOfUser', '$usernameOfUser')";

如果仍然存在问题,则打印查询并直接在phpmyadmin中运行,以查看查询没有问题。

注意:您正在使用mysql_*功能。请使用PDOMysqli,因为您当前的代码易于Sql Injection.

PDO链接:http://php.net/manual/en/book.pdo.php

答案 4 :(得分:0)

在提交表单数据之前,您需要启动mysql服务器。 你可以通过使用xampp软件启动mysql服务器。一旦你通过xampp软件启动你的mysql服务器,你也可以找到mysql服务器端口号。 包含数据库的实际格式是,

mysql_connect("localhost:port/database","username","password");