php登录系统插入麻烦

标签 php mysql authentication

我的代码有问题。该代码的目的只是一个明确的登录系统,您可以在其中登录并创建用户。我的问题是创建用户。当我填写字段时,它会显示错误消息,因为用户 ID 为零,所以添加用户时出错。我问我的老师,他说我的插入语句有问题,但我一生都无法弄清楚。有人能指出我正确的方向吗?谢谢你! (表名叫security)

PHP

$insert_sql ="INSERT INTO security SET ";
    $insert_sql .= " username = '".$username ."'";
    $insert_sql .= ", first_name = '".$first_name."'";
    $insert_sql .= ", last_name = '".$last_name."'";
    $insert_sql .= ", email = '".$email."'";
    $insert_sql .= ", password = '". $salted_password . "'";

    $result = $dbh->query($insert_sql);


    $user_id = $dbh->insert_id;

    if ($user_id > 0){

        session_start();
        $_SESSION['user_id'] =$user_id;



        echo "Login Created and user logged in<p>";
        echo "<a href=main.php>Click here to continue</a><p>";


    } else {
        $msg = 'Error adding user';
        NEW_LOGIN($dbh,$msg);
    }
}
}

最佳答案

您的插入语句错误地采用了更新语句的形式。

$insert_sql ="INSERT INTO security SET ";
$insert_sql .= " username = '".$username ."'";
$insert_sql .= ", first_name = '".$first_name."'";
$insert_sql .= ", last_name = '".$last_name."'";
$insert_sql .= ", email = '".$email."'";
$insert_sql .= ", password = '". $salted_password . "'";

实际上应该是

$insert_sql ="INSERT INTO security (username_column_in_db, first_name_column_in_db,last_name_column_in_db,email_column_in_db)
values ('".$username ."','".$first_name."','".$last_name."','".$email."','". $salted_password . "')";

username_column_in_db、first_name_column_in_db、last_name_column_in_db 和 email_column_in_db 需要替换为数据库中的列名称。

您的用户 ID 返回为 0,因为记录并未实际插入,而不是因为您尝试将 ID 设置为 0。

关于php登录系统插入麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43459387/

相关文章:

php - MySQL 查询正在运行但未运行

php - 从 $wpdb 获取正确的值

php - 如何在 SQL 中对多个字段进行排序和过滤搜索

mysql - MAMP Mysql 服务器不工作。错误消息 2002

php - 在php中获取没有列名的SQLdata

c# - 将 IE10 中的眼睛图标隐藏在 IFrame 中

javascript - 什么是多文件上传的js验证示例: name ="files[]"

php - 如何防止 "remember me"cookie 垃圾邮件?

apache - 通过 AJP 将 REMOTE_USER 转发到 tomcat(例如,用于 shibboleth)

apache - 如何在子目录 (.htaccess) 中使用不同的密码