美文网首页
php8 学习 连接mysql

php8 学习 连接mysql

作者: wuyuan0127 | 来源:发表于2023-12-11 22:44 被阅读0次

安装 phpStudyPro

Config.php:

<?php

/**

* Database config variables

*/

//本地数据库配置

define("DB_HOST", "localhost");

define("DB_PORT", 3307);

define("DB_USER", "root");

define("DB_PASSWORD", "root");

define("DB_DATABASE", "phpstudy");:

--------------------    DBFunctions.php      -------------------------------

<?php

require_once 'Config.php';

class DB_Functions

{

    private $conn;

    private $isNext;

    // constructor

    function __construct()

    {

        $this->connect();

    }

    // destructor

    function __destruct()

    {

    }

    // Connecting to database

    public function connect() {

      // 创建连接

        $this->conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD,DB_DATABASE,DB_PORT);

        // 检测连接

        if ($this->conn->connect_error) {

            $this->isNext=false;

        }else{

            //检查是否创建数据库

            // 创建数据库

            $sql = "show DATABASES LIKE '".DB_DATABASE."'";

            $row = $this->conn->query($sql)->fetch_object();

            if ($row) {

                $this->isNext=true;

            } else {

                // 创建数据库

                $sql = "CREATE DATABASE ".DB_DATABASE;

                if ($this->conn->query($sql) === TRUE) {

                    $this->isNext=true;

                } else {

                    $this->isNext=false;

                }

            }

        }

        // return database handler

        return $this->conn;

    }

    public function checkTablesUsers()

    {

        $sql = "SHOW TABLES LIKE 'users'";

        $row = $this->conn->query($sql)->fetch_object();

        if (!$row) {

            // 使用 sql 创建数据表

            $sql = "CREATE TABLE users (

                  uid INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

                  username VARCHAR(50),

                  password VARCHAR(50),

                  avatar VARCHAR(50),

                  sign VARCHAR(50),

                  createtime DATETIME

                  )";

            if ($this->conn->query($sql) === TRUE) {

                return true;

            } else {

                $response["code"] = "0";

                $response["msg"] = "创建数据表错误: " .$this->conn->error;

                die(json_encode($response,JSON_UNESCAPED_UNICODE));

                return false;

            }

        } else {

            return true;

        }

    }

    /**

    * Storing new user

    * returns user details

    */

    public function storeUser($username, $password)

    {

        if ($this->checkTablesUsers()) {

            $stmt = $this->conn->prepare("INSERT INTO users(username, password,createtime) VALUES(?, ?, NOW())");

            //该函数绑定了 SQL 的参数,且告诉数据库参数的值。 "sss" 参数列处理其余参数的数据类型。s 字符告诉数据库该参数为字符串

            $stmt->bind_param("ss", $username, $password);

            $result = $stmt->execute();

            $stmt->close();

            // check for successful store

            if ($result) {

                $stmt = $this->conn->prepare("SELECT * FROM users WHERE username = ?");

                $stmt->bind_param("s", $username);

                $stmt->execute();

                $user = $stmt->get_result()->fetch_assoc();

                $stmt->close();

                return $user;

            } else {

                return false;

            }

        }

    }

    /**

    * Get user by username and password

    */

    public function getUserByUsernameAndPassword($username, $password)

    {

        if ($this->checkTablesUsers()) {

            $stmt = $this->conn->prepare("SELECT * FROM users WHERE username = ?");

            $stmt->bind_param("s", $username);

            if ($stmt->execute()) {

                $user = $stmt->get_result()->fetch_assoc();

                $stmt->close();

                // verifying user password

                $passwordss = $user['password'];

                // check for password equality

                if ($passwordss == $password) {

                    // user authentication details are correct

                    return $user;

                }

            } else {

                return NULL;

            }

        }

    }

    /**

    * Get user by uid

    */

    public function getUserByUid($uid)

    {

        if ($this->checkTablesUsers()) {

            $stmt = $this->conn->prepare("SELECT * FROM users WHERE uid = ?");

            $stmt->bind_param("s", $uid);

            if ($stmt->execute()) {

                $user = $stmt->get_result()->fetch_assoc();

                $stmt->close();

                return $user;

            } else {

                return NULL;

            }

        }

    }

    /**

    * Check user is existed or not

    */

    public function isUserExisted($username)

    {

        if ($this->checkTablesUsers()) {

            $stmt = $this->conn->prepare("SELECT username from users WHERE username = ?");

            $stmt->bind_param("s", $username);

            $stmt->execute();

            $stmt->store_result();

            if ($stmt->num_rows > 0) {

                // user existed

                $stmt->close();

                return true;

            } else {

                // user not existed

                $stmt->close();

                return false;

            }

        }

    }

}

3.  index.php

<?php

require_once 'DBFunctions.php';

$db = new DB_Functions();

$user = $db->getUserByUsernameAndPassword("yuanwu", "123");

echo $user

?>

相关文章

  • Node.js连接mysql数据库

    学习目标 使用node.js连接并操作mysql数据 先安装mysql模块 编写代码实现 创建连接 连接mysql...

  • Python学习18-连接数据库

    查看所有Python相关学习笔记 本文包含内容 连接mysql数据库 连接db2数据库 连接mysql数据库 安装...

  • 自己的链接小笔记--不定时更新

    -git如何上传代码 IDEA 整合 SSM 框架学习 mysql安装 Navicat连接Mysql出现1045、...

  • Java学习

    Java学习之路 MySQL Workbench创建数据库 数据库连接代码 Mysql Mysql是最流行的关系型...

  • MySql

    //连接mysql mysql -u root -h 47.101.205.200 -p //连接mysql ex...

  • Node 连接 MySQL

    安装驱动 Node 连接 MySQL 首先需要安装 MySQL 驱动 mysqljs/mysql 连接数据库 连接...

  • 多种语言连接MySQL

    1.java连接MySQL(JDBC) 2.php连接MySQL(mysql_connect) 3.R连接MySQ...

  • PHP+MySQL

    前言 本文为PHP与MySQL连接的一些基础操作的总结。 连接MySQL服务器 连接成功---返回mysql连接标...

  • 本文为PHP与MySQL连接的一些基础操作的总结

    前言 本文为PHP与MySQL连接的一些基础操作的总结。 连接MySQL服务器 连接成功---返回mysql连接标...

  • MySQL学习笔记-连接

    多表查询经常用到连接,各种连接之间的区别应该注意总结。 本文来分享一下内连接、外连接、左连接、右连接、等值连接、自...

网友评论

      本文标题:php8 学习 连接mysql

      本文链接:https://www.haomeiwen.com/subject/ovamgdtx.html