php - INSERT INTO 表不起作用?

标签 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>";  
    }
}

它回显“错误”... 你能帮我指出这里的错误吗??? :(

最佳答案

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

if ($stmt->fetch()) {

通常,数据操作查询(INSERT、UPDATE、DELETE 等)不会返回可获取的结果集。通常,$stmt->execute(); 函数会返回您要查找的 true 或 false 值。

在第二个例子中,你拼错了“username”:

INSERT INTO 用户(用户名,密码,...

关于php - INSERT INTO 表不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2793678/

相关文章:

MySQL 使用旧值和新字符串更新 varchar 值

php - 在 MySQL 数据库中制作用于编辑字段的表单的快速而肮脏的方法

mysql - 在 MySQL 中 - 查找正在选修两门类(class)的学生姓名

php - Symfony2 和学说 : multiple relationships between two classes

php - 如何从 Laravel 项目的根目录访问 env 文件?

php sql 查询不适用于 php

mysql - 为什么mysql中的表有Invalid Default Value

mysql - Mysql Index key有什么用?

php - Symfony 在 MySQL blob 中上传文件

php - 使用 mysqli_result() 获取特定列数据