PHP简单插入问题

时间:2013-06-19 22:24:57

标签: php javascript mysql sql insert

我无法弄清楚PHP的问题是什么,但INSERT函数似乎总是失败。我列出了正确的表行,但可能只是一个简单的语法问题。如果需要该代码,我也可以提供。这是我的PHP和数据库结构:

enter image description here

  <?php  
 $con = mysql_connect('***','***','***');  
    if (!$con)  
{  
    echo "Failed to make connection.";  
    exit;  
}  
$db = mysql_select_db('***');  
if (!$db)  
{  
    echo "Failed to select db.";  
    exit;  
}  
$username   = $_POST['username'];  
$password   = $_POST['password'];  
$name      = $_POST['name'];  
$email      = $_POST['email'];  
$sql        = "SELECT username,email FROM Users WHERE username = '" . $username . "' OR email = '" . $email . "'";  
$query      = mysql_query($sql);  
if (mysql_num_rows($query) > 0)  
{  
    echo "That username or email already exists";  
}  
else  
{  
    $insert = "INSERT INTO Users(username,password,name,email) VALUES ('" . $username . "','" . $password . "','" . $name . "','" . $email . "')";  
    $query  = mysql_query($insert);  
    if ($query)  
    {  
        echo "Thanks for registering. You may now login.";  
    }  
    else  
    {  
        echo "Insert failed";  
    }  
}  
?>  

3 个答案:

答案 0 :(得分:1)

可能是因为用户和“(”之间没有空格。 还有,你的桌子是大写字母。 也许这张桌子有一些前缀?

答案 1 :(得分:1)

如果查询失败则抛出错误,以便您可以看到发生了什么。在你上线之前把它拿出来。

$query = mysql_query($insert);
if (!$query) {
    die('Invalid query: ' . mysql_error());
} else {
    echo "Thanks for registering. You may now login.";
}

还有一些针对您的登录表单的建议。使用http://www.php.net/manual/en/function.mysql-real-escape-string.php将您输入的内容转移到数据库中。我还建议您在保存之前找到一个好的正则表达式来验证电子邮件。甚至可以至少对密码进行哈希处理。

答案 2 :(得分:1)

这是未经测试但可能就像这样简单:

$insert = "INSERT INTO Users(username,password,name,email) VALUES ('$username','$password','$name','$email')";