1

我正在尝试使用以下代码将用户输入插入数据库。

mysql_query("INSERT INTO 'users' ('Email', 'Username', 'Password') VALUES ($email, $username, $password)");

没有错误,但数据库似乎永远不会插入代码。难道我做错了什么?

这是我的整个代码,HTML 和所有

<?php

    DEFINE ('SERVER', 'localhost');
    DEFINE ('PASSWORD', '');
    DEFINE ('USER', 'root');

    $email = $_POST['email'];
    $username = $_POST['username'];
    $password = SHA1($_POST['pass']);

    if(isset('submitted')
    {

    if($email && $username && $password)
    {
        $to = 'email@example.com'
        $subject = 'subject'
        $body = 'there was an error connecting to the db, please check it.'
        $dbconnect = @mysql_connect(SERVER, USER, PASSWORD) or die("NO WORK!");
        $query = "USE practice" 
        mysql_query($query);

        mysql_query("INSERT INTO users (Email, Username, Password)
             VALUES ('$email', '$username', '$password')") or die(mysql_erorr());
    }
    }

?>
<html>

<form action = "" method = "post">
<label>Email Address</label>
<input type="text" name="email" /> <br />
<label>Desired Username</label>
<input type="text" name="username" /> <br />
<label>Password</label>
<input type="password" name="pass" /> <br />
<input type="submit" value="Register"  />
<input type="hidden" name="submitted" value=1 />
</form>

</html>
4

3 回答 3

2

可能您还应该将值括在撇号中,并且您可能也不应将撇号用于表和字段名称,而应使用反引号 ` 或在您的情况下不使用!

mysql_query("INSERT INTO users (Email, Username, Password)
             VALUES ('$email', '$username', '$password')")

但也要确保正确转义这些变量的值!不仅是因为 SQL 注入,而且主要是为了确保正确的 SQL 语法。想象一下名为 O'Brian 的用户 - 他会导致 SQL 错误。

于 2012-04-17T00:32:26.893 回答
0

您可能会遇到一些错误,但可能是由于以下行导致 mysql_error as mysql_erorr 的拼写错误

   mysql_query("INSERT INTO users (Email, Username, Password)
             VALUES ('$email', '$username', '$password')") or die(mysql_erorr());

只需尝试修复它,看看您是否遇到一些数据库错误,以便轻松追踪和修复它。

于 2012-04-17T01:04:12.880 回答
0

在 mySQL 数据库中声明命名空间时也是如此。你应该像这样放反引号`。所以

   mysql_query("INSERT INTO users (`Email`, `Username`, `Password`)
         VALUES ('$email', '$username', '$password')") or die(mysql_erorr());

否则,您的代码看起来很可靠。

于 2012-04-17T01:08:53.490 回答