INSERT INTO表不起作用?

时间:2010-05-08 10:19:39

标签: php mysql

我从nettuts找到了一个教程,它有一个源代码,所以尝试在我的网站上实现它..它现在正在工作。但是,它没有注册系统,所以我正在制作一个。事实是,正如我所料,我的代码不起作用......它似乎不知道如何插入数据库。这是将数据插入数据库的函数。

function register_User($un, $email, $pwd) {
$query = "INSERT INTO users( username, password, email )
                VALUES(:uname, :pwd, :email)
                LIMIT 1";

if($stmt = $this->conn->prepare($query)) {
    $stmt->bind_param(':uname', $un);
    $stmt->bind_param(':pwd', $pwd);
    $stmt->bind_param(':email', $email);
    $stmt->execute();

    if($stmt->fetch()) {
        $stmt->close();
        return true;
    } else return "The username or email you entered is already in                      
                  use...";
}

}

我已经从类中调试了与数据库的连接,它说已经连接了。我尝试使用这种方法:

function register($un, $email, $pwd)
{
    $registerquery = $this->conn->query(
               "INSERT INTO users(uername, password, email) 
               VALUES('".$un."', '".$pwd."', '".$email."')");  
    if($registerquery)  
    {  
        echo "<h4>Success</h4>";  
    }  
    else  
    {  
        echo "<h4>Error</h4>";  
    }
}

它回声“错误”...... 你可以帮我点笔这个错误吗??? :(

5 个答案:

答案 0 :(得分:4)

在第一个示例中,看起来这行可能是问题:

if ($stmt->fetch()) {

通常,数据操作查询(INSERT,UPDATE,DELETE等)不返回可以获取的结果集。通常,$stmt->execute();函数会返回您正在寻找的真值或假值。

在第二个示例中,您错误地拼写了“用户名”:

INSERT INTO users(uername, password, ...

答案 1 :(得分:1)

我希望上面的代码没有错误...最好把你的查询写成一个字符串并将其作为参数发送。有时候串联及其参数变量可能会出现问题。

另请检查字段名称是拼写错误。

答案 2 :(得分:0)

第一个例子,

$query = "INSERT INTO users( username, password, email )
            VALUES(:uname, :pwd, :email)
            LIMIT 1";

删除“LIMIT 1”,应为

$query = "INSERT INTO users( username, password, email )
            VALUES(:uname, :pwd, :email)";

“LIMIT”不是查询构造的一部分。有关详细信息,请参阅INSERT USAGE DOCUMENTATION

第二个例子,

如前所述,您在“用户名”字段中拼写错误。你改用了“uername”。这将触发“未知列”错误。

最后请注意,请务必阅读错误消息,因为这是您首先找到问题线索的地方。此外,尝试通过数据库客户端测试您的查询构造,以确保您没有错误。

答案 3 :(得分:0)

非常感谢所有帮助过的人! :-) 如果我找时间的话,我会调查我的第一种方法并尝试应用你的修正... 现在我正在使用第二种方法,显然,我拼错了一个字段。

再次感谢!

答案 4 :(得分:-1)

试试这个。

mysql_query("INSERT INTO `users` (`username`,`password`,`email`) VALUES ('$user','$pass','$email')