首页 > 其他分享 >创建数据表与认识PDO学习

创建数据表与认识PDO学习

时间:2024-08-05 22:28:20浏览次数:12  
标签:username 创建 PDO 数据表 res msg input password data

pdo\config\database.php
<?php /** * 返回一个数组 数据库连接配置 * pdo扩展为PHP访问数据库定义了一个轻量级的一致接口 * pdo php data object 为php提供了数据访问抽象层 不管使用哪种数据库服务,都可以使用相同的函数(方法)去查询数据 * */ // phpinfo(); namespace pdo_chloe; return [ 'type'=> $type ?? 'mysql',//数据库类型 'host'=> $host ?? 'localhost',//数据库主机名 'dbname'=> $dbname ?? '16',//数据库名 'username'=> $username ?? 'root',//数据库连接用户名 'password'=> $password ?? '3.1415926',//密码 'charset'=> $charset ?? 'utf8mb4',//字符集 'port'=> $port ?? '3306'//端口 ]; ?>

  

pdo\1-connect.php
<?php
// echo password_hash('KILAKA',PASSWORD_BCRYPT);
// ECHO time();
namespace connect_chloe;
use PDO;
$config = require __DIR__ .'\\config\\database.php';
extract($config); 
// var_dump($username);


// dsn data source name 包括pDO驱动名称 主机名 端口号 数据库名称

$dsn = sprintf('%s:host=%s;port=%d;dbname=%s',$type,$host,$port,$dbname);



try {
    $pdo = new PDO($dsn,$username,$password,[PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING]);
    // var_dump($pdo);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
} catch (\Exception $e) {
   die('Connection error : ' . $e->getMessage());
}
?>

  

pdo\2-reg.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册</title>
</head>
<body>
<h2>用户注册</h2>
    
    <table>
    <tr>
    <td>账户</td>
    <td><input type="text" name="username"></td>
    <td><span id="err_msg"></span></td>
     
    </tr>
    <tr>
    <td>密码</td>
    <td><input type="password" name="password"></td>
    </tr>
    <tr>
    <td>性别</td>
    <td>
        <input type="radio" name="gender" value="1" checked >男
        <input  type="radio" name="gender" value="0" >女
    </td>
    </tr>
    <tr align="center">
    <td colspan="2">
    <input type="button" name="btn" value="确定">
    </td>
    </tr>
    </table>

<script type="text/javascript" src="
https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

<script type="text/javascript" >

    // 检测用户名是否重复
    $('input[name="username"]').blur(function(){
        var data = {};
        data.username =  $('input[name="username"]').val();
        data.type = 1;
        $.post('3-doSubmit.php',data,function(res){
            if(res.status == 0)
            {
                $("#err_msg").text(res.msg);
                $("#err_msg").css('color','red');
                $('input[name="password"]').attr('disabled','disabled');

            }else{
                $("#err_msg").text(res.msg);
                $("#err_msg").css('color','green');
                $('input[name="password"]').removeAttr('disabled');

            }

        },'json')
    })




    // 检查用户名和密码不能为空
    $('input[name="btn"]').click(function(){
        var data = {};
        data.username =  $('input[name="username"]').val();
        data.password =  $('input[name="password"]').val();
        data.gender =  $('input[name="gender"]').val();
        data.type = 2;
        if(data.username == '' || data.password == '' )
        {
            alert('用户名或密码不能为空');
            return;
        }
        $.post('3-doSubmit.php',data,function(res){
            if(res.status == 1)
            {
                alert(res.msg);
            }else{
                alert(res.msg);
            }
        },'json')

    })
</script>
</body>
</html>

  

pdo\3-doSubmit.php
<?php
namespace pdo_chloe;
require 'common.php';
// 接收数据
// var_dump($_POST);
$username = !empty($_POST['username']) && isset($_POST['username']) ? $_POST['username']:null;
$password = !empty($_POST['password']) && isset($_POST['password']) ? password_hash($_POST['password'],PASSWORD_BCRYPT):null;
$gender = !empty($_POST['gender']) && isset($_POST['gender']) ? intval($_POST['gender']):null;
$c_time = time();


//请求分发器 type 1 检查用户名重名 2注册 3 登录 
$type = isset($_POST['type'])&&!empty($_POST['type']) ? intval($_POST['type']):null;
switch ($type) {
    case 1:
        $res = checkUname($username);
        if($res)
        {
            echo json_encode(['status'=>0,'msg'=>'用户名已被占用'],320);
        }else{
            echo json_encode(['status'=>1,'msg'=>'用户名合法'],320);
        }
        break;
    case 2:
        
        $sql = "INSERT INTO `user` SET `uname` = '{$username}', `pwd`='{$password}', `gender` = {$gender},`c_time`={$c_time};";

        // 执行 insert sql语句 
        // query()select sql 语句
        // var_dump(empty($username));

        if( empty($username) || empty($password) || empty($gender))
        {
            echo json_encode(['status'=>10,'msg'=>'系统字段错误']);
            
        }else{

            $flag = checkUname($username);
            if(!$flag)
            {
                $res = $pdo->exec($sql);
                // 数据插入成功
                if($res)
                {
                    echo json_encode(['status'=>1,'msg'=>'注册成功'],320);
                }else{
                    echo json_encode(['status'=>0,'msg'=>'注册失败'],320);
    
                }
            }else{
                echo json_encode(['status'=>0,'msg'=>'请勿重复提交'],320);
            }
            
        }
        break;
    default:
        # code...
        break;
}

?>

  

pdo\common.php

<?php
//公共模型文件

// 连接数据库
require '1-connect.php';

function checkUname($username)
{
    global $pdo;
    $isOccupied = false;//默认数据库中不存在同名用户名 
    $sql = "SELECT `uname` FROM `user` WHERE `uname`='{$username}'";
    $res = $pdo->query($sql)->fetch();
    // 已存在同名昵称
    if($res)
    {
        $isOccupied = true;
    }
    return $isOccupied;
}

function insertData()
{

}
?>

  

标签:username,创建,PDO,数据表,res,msg,input,password,data
From: https://www.cnblogs.com/QWD7986/p/18344174

相关文章

  • 免费为您的网页创建在线客服,扣子(COZE) WEB SDK图文使用教程
    ......
  • 【从零开始一步步学习VSOA开发】创建VSOA的server端
    创建VSOA的server端创建工程参考hellovsoa工程,创建server工程,工程源码修改如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<netinet/in.h>#include<arpa/inet.h>#include"vsoa_platform.h"#include"vsoa_ser......
  • 用Python和PyQt5打造你的专属音乐播放器!轻松创建带封面的音乐列表
    在本文中,我们将介绍如何使用Python的PyQt5库创建一个简单的音乐播放器。这个音乐播放器可以显示歌曲的封面,并且点击封面就可以播放对应的歌曲。依赖库首先,我们需要安装PyQt5库。可以使用以下命令进行安装:pipinstallPyQt5功能如下:显示歌曲列表:程序会在指定的目录(在......
  • 在 Glue 作业中使用 python3+ 创建 CloudFront 签名 URL
    是否可以使用python3+为GlueJob中S3文件中的一个特定文件创建具有一定时间限制的CloudFront签名URL?我看到可以在Lambda中做到这一点,但在Python文档中找不到任何内容,特别是胶水工作。任何人都可以提供一些提示吗?defload_private_key(key_path):withopen(......
  • Pycharm启动项目没有创建venv
    当我使用Pycharm启动项目并尝试启动项目时,未创建我的虚拟环境目录。这是它在我的计算机上的样子:现在我可以通过使用python-mvenvvenv然后使用.\env\scripts\activate手动创建venv,但这样做会弄乱我的模板文件夹位置和静态位置。当我开始一个项目......
  • OpenGL实现3D游戏编程【连载2】——了解并创建3D空间模型
    1、本节实现的内容上一节我们创建一个简单的窗口,本节我们需要了解一下细节内容,同时为了方便观看,我们需要显示一个世界坐标轴,建立一个直观的三维空间。2、我们的眼睛设定(gluPerspective函数)上一节课,我们创建了一个简单的opengl窗口,并显示了一个简单的3d模型正方体,这节我......
  • VisionPro二次开发学习笔记1-创建基于QuickBuild的C#应用程序
    创建基于QuickBuild的C#应用程序使用的QuickBuild应用程序位于%VPRO_ROOT%/Samples/Programming/QuickBuild/advancedAppOne.vpp中。在继续之前,可以在QuickBuild中运行该应用程序。QuickBuild应用程序使用PatMax查找支架的“耳朵”之一,使用CogFixture工具设置图像的......
  • 创建一个微服务需要用到哪些注解
    在开发微服务时,开发者会使用到一系列注解来简化配置、声明依赖注入、定义服务路由等。具体介绍如下:1.Spring框架相关注解  -@Autowired:此注解用于实现bean的自动装配,可以标注在成员变量上,也可以标注在setter方法上。  -@Resource:  此注解用于实现bean的自动装配;......
  • 在存储桶中创建文件的最小权限原则
    我试图向服务帐户授予一组有限的权限,同时允许在特定存储桶上创建文件。我没有创建自定义角色,而是考虑使用存储桶上预定义的角色。roles/storage.objectCreator之后,我通过模拟SA运行以下代码行:但是,当我执行工作流时,我收到权限被拒绝的错误:storage_client=stora......
  • vscode基于脚手架创建项目(cmd,自用)+ 简单的项目导入方式
    ————————————创建项目*确保下载了node.js以管理员身份运行cmd,切换到vscode存放项目的地方,运行npminstall-g--force@vue/cli准备工作完成在项目存放处打开cmd,运行vuecreatecomponent_dome(component_dome为项目名)选中Manuallyselectfeatures,回车......