PHP之 连接MySql数据库

这篇具有很好参考价值的文章主要介绍了PHP之 连接MySql数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一节已经成功配置了php+mysql开发环境(https://mp.csdn.net/mp_blog/creation/editor/129432310),下面将进行实战连接数据库

一,打开sublime3编辑器,配置php开发环境

1.1 在网站根目录下新建php项目文件夹,存放php文件

php连接mysql,数据库,php,mysql

php连接mysql,数据库,php,mysql

1.2 安装Package Control,按下ctrl+shift+p,调出输入框输入Package Control,并安装

php连接mysql,数据库,php,mysql

php连接mysql,数据库,php,mysql

 安装成功后可以用package control添加其它支持插件

php连接mysql,数据库,php,mysql

 二,php连接数据库相关源码

php连接mysql,数据库,php,mysql

2.1 数据库配置

<?php

/**
 * Database config variables
 */
//本地数据库配置
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "Aa123456..");
define("DB_DATABASE", "bdm817514261_db");

2.2 连接数据库和用户的增删改查

<?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);
        // 检测连接
        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;
                }
            }
        }

        if($this->isNext){
            $this->conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
            if ($this->conn->connect_error) {
                $response["code"] = "0";
                $response["msg"] = "连接失败";
                die(json_encode($response,JSON_UNESCAPED_UNICODE));
            }
            // else{
            //     $response["code"] = "0";
            //     $response["msg"] = "连接成功";
            //     die(json_encode($response,JSON_UNESCAPED_UNICODE));
            // }
        }else{
            $response["code"] = "0";
            $response["msg"] = "创建数据库失败";
            die(json_encode($response,JSON_UNESCAPED_UNICODE));
        }

        // 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;
            }
        }
    }

}

2.3 POST JSON数据请求接口格式注册实战


<?php
require_once 'DBFunctions.php';
$db = new DB_Functions();

// 从请求中获取原始数据
$json = file_get_contents('php://input'); 
// 将其转换为 PHP 对象
$data = json_decode($json);

$username=null;
$password=null;
if($data){
    //json格式
    $username=$data->username;
    $password=$data->password;
}

if($username&&$password){
	// check if user already existed
	if ($db->isUserExisted($username)) {
		// exists already
        $response["code"] = "0";
        $response["msg"] = "用户已存在";
		echo json_encode($response,JSON_UNESCAPED_UNICODE);
	} else {
		// create a new user
		$user = $db->storeUser($username, $password);
		if ($user) {
            $response["code"] = "1";
            $response["msg"] = "注册成功";
            $response["data"]["uid"] = $user["uid"];
            $response["data"]["username"] = $user["username"];
			echo json_encode($response,JSON_UNESCAPED_UNICODE);
		} else {
			//failed
            $response["code"] = "0";
            $response["msg"] = "注册失败";
			echo json_encode($response,JSON_UNESCAPED_UNICODE);
		}
	}
	
} else {
    $response["code"] = "0";
   $response["msg"] = "请输入用户名或密码";
	echo json_encode($response,JSON_UNESCAPED_UNICODE);
}

2.4 POST JSON数据请求接口格式登录实战


<?php
require_once 'DBFunctions.php';

$db = new DB_Functions();

// 从请求中获取原始数据
$json = file_get_contents('php://input'); 
// 将其转换为 PHP 对象
$data = json_decode($json);

$username=null;
$password=null;
if($data){
    //json格式
    $username=$data->username;
    $password=$data->password;
}

if($username&&$password){
	$user = $db->getUserByUsernameAndPassword($username, $password);

	if ($user) {
		//user found
		$response["code"] = "1";
        $response["msg"] = "登录成功";
        $response["data"]["uid"] = $user["uid"];
		$response["data"]["username"] = $user["username"];
		echo json_encode($response,JSON_UNESCAPED_UNICODE);
	} else {
		// user not found
        $response["code"] = "0";
        $response["msg"] = "用户名或密不正确";
		echo json_encode($response,JSON_UNESCAPED_UNICODE);
	}
} else {
	// params missing
    $response["code"] = "0";
    $response["msg"] = "请输入用户名或密码";
	echo json_encode($response,JSON_UNESCAPED_UNICODE);
}

2.5 GET方式接口获取用户信息实战

<?php 
require_once 'DBFunctions.php';

$db = new DB_Functions();

$uid=$_GET['uid'];

if($uid){
	$user = $db->getUserByUid($uid);

	if ($user) {
		//user found
		$response["code"] = "1";
        $response["msg"] = "获取用户信息成功";
        $response["data"]["uid"] = $user["uid"];
		$response["data"]["username"] = $user["username"];
		echo json_encode($response,JSON_UNESCAPED_UNICODE);
	} else {
		// user not found
        $response["code"] = "0";
        $response["msg"] = "获取用户信息失败";
		echo json_encode($response,JSON_UNESCAPED_UNICODE);
	}
} else {
	// params missing
    $response["code"] = "0";
    $response["msg"] = "请传入用户ID";
	echo json_encode($response,JSON_UNESCAPED_UNICODE);
}

三,运行

打开静态页面,输入用户名密码,登录成功会返回首页

php连接mysql,数据库,php,mysql

php连接mysql,数据库,php,mysql

php连接mysql,数据库,php,mysql

四,编辑器

4.1 当然除了sublime,还有phpstorm和EclipseForPHP也是很强大的编辑器可供选择,sublime轻量级一些

4.2 sublime插件

1.Package Control (https://sublime.wbond.net)

这个就不多说了,装sublime插件必备,如果你还没有装,看这里。

2.Sub­lime­CodeIn­tel (https://github.com/SublimeCodeIntel/SublimeCodeIntel)

提供代码提示,函数、对象或变量名称等。还可以提示对象或类中哪些方法和变量。基于komodo codeintel开发,虽然有时会有一些问题,但是大多时候是没问题的。

3.Sub­limeLin­ter (https://sublime.wbond.net/packages/SublimeLinter)

代码提错工具。但是从sublime 3开始,SublimeLineter编程模块化,所以安装完主安装包之后,还需要安装你需要支持的对应的语言的插件。对于PHP+js的开发,可以安装如下插件:

SublimeLinter-php
SublimeLinter-jshint
SublimeLinter-json
and SublimeLinter-csslint
4.Side­BarEn­hance­ments (https://sublime.wbond.net/packages/SideBarEnhancements)

提供强大的边栏右键选项,非常方便。

5.VCS Gut­ter (https://sublime.wbond.net/packages/VCS%20Gutter)

编码的时候避免不了使用Git或SVN,VCS Gutter可以很方便的在代码中显示代码改动,支持Git、 Mercurial和 Subversion,如下图:screenshot

6.SFTP, paid (http://wbond.net/sublime_packages/sftp)

这个插件可以让Sublime很方便的支持SFTP、FTP和FTPS。支持远程文件浏览编辑和远程与本地的同步,还可以方便的上传下载,不过要钱,我就呵呵呵了~~~。

7.Tor­toise (on Win­dows only) (http://wbond.net/sublime_packages/tortoise)

如果在Windows环境下编程,这个工具可以完全替代Side­Bar­Git,它没有很多的特点,但是提供的功能都很实用。

8.sublime-github (https://github.com/bgreenlee/sublime-github)

支持github的插件。

9.PHPcs (http://soulbroken.co.uk/code/sublimephpcs)

检查php代码是否满足某种标准,比如Zend,PEAR等。

10.Trail­ing­Spaces (https://github.com/SublimeText/TrailingSpaces)

自动删除高亮行末、文件尾的空格。

11.Brack­etHigh­lighter (https://github.com/facelessuser/BracketHighlighter)

和Tag插件的情形一样,ST3对代码高亮已经支持的足够好了,但是不得不说,这仍然是一个很好的插件。

12.Sub­lime Func­tion Name Display (https://github.com/akrabat/SublimeFunctionNameDisplay)

在底部状态栏显示当前文件、类和函数或方法的名称。简单实用。

13.Ter­mi­nal (http://wbond.net/sublime_packages/terminal)

使用Git或者一些PEAR包的时候,你或许需要不断地转换到命令行。这就是这个插件的作用。

14.DocBlockr (https://github.com/spadgos/sublime-jsdocs)文章来源地址https://www.toymoban.com/news/detail-782404.html

到了这里,关于PHP之 连接MySql数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • php连接上mysql数据库该的配置方法

    用mysql官方的管理工具workbench: 打开导出界面后,下一步,选择csv格式,导出后excel就能打开了 如果你需要在程序代码中导出,需要找到对应代码的excel处理库。 如php 的 phpExcel( 最新版已更名为 phpoffice/phpspreadsheet) 要根据你当前服务器的php版本选择。 然后根据excel库的api编写

    2024年02月16日
    浏览(40)
  • 【PHP网页应用】MySQL数据库增删改查 基础版

    使用PHP编写一个简单的网页,实现对MySQL数据库的增删改和展示操作 页面实现在index.php,其中basic.php为没有css美化的原始人版本 函数实现在database.php 目录 功能基本实现版  CSS美化版 basicindex.php  index.php   database.php 代码讲解 我们来展示一下页面和操作示例。 运行网页,可

    2024年01月16日
    浏览(51)
  • 微信小程序使用PHP调用后台mysql数据库-小白版

    1.域名备案 首先,需要有一个域名,且这个域名是已经备过案的。(如果小程序不发布正式版只用于线上测试则不影响) 2.后台服务器 其次,需要一个服务器,我这里使用的是宝塔面板,对小白很友好,很方便操作。 也可以买个虚拟主机,一个月几块钱左右,很适合小白弄

    2024年04月14日
    浏览(52)
  • PHP 房产网站系统Dreamweaver开发mysql数据库web结构php编程计算机网页项目

    一、源码特点     PHP 房产网站系统是一套完善的WEB设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 源码 https://download.csdn.net/download/qq_41221322/88233553 论文 https://download.csdn.net/download/qq_41221322/88233555 PHP 房产网站系统Drea

    2024年02月12日
    浏览(57)
  • PHP教学资源管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页

    一、源码特点     PHP 教学资源管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 源码 https://download.csdn.net/download/qq_41221322/88260480 论文 https://download.csdn.net/download/qq_41221322/88260482 二、功能介绍 前

    2024年02月10日
    浏览(55)
  • 前端注册登录页面数据库交互(h5+css+php+mysql+axios)

    一个登录注册界面,并使用前端数据库实现登陆注册功能  首先是index.html 直接在index.html里面写了用axios,实现注册和登录 效果图 登录注册滑动实现 script.js style.css 然后是登录和注册的php login.php register.php

    2024年02月11日
    浏览(45)
  • PHP NBA球迷俱乐部系统Dreamweaver开发mysql数据库web结构php编程计算机网页

    一、源码特点     PHP NBA球迷俱乐部系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 基于PHP的NBA球迷俱乐部 二、功能介绍 1、前台主要功能: 系统首页 网站介绍 网站新闻浏览 球迷注册 球队简介浏

    2024年02月09日
    浏览(57)
  • 基于PHP+小程序(MINA框架)+Mysql数据库的有声读物音频播放小程序系统设计与实现

    目的: 小程序是一种不需要下载安装即可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一下即可打开应用。另一方面,面对有声阅读的收费化,广告化的趋势,我希望给用户提供免费、舒适、纯粹的阅读体验,让有声阅读成为用户的移动图书馆,也让那些没

    2024年02月06日
    浏览(50)
  • PHP流浪动物招领网站mysql数据库web结构apache计算机软件工程网页wamp

    一、源码特点      PHP流浪动物招领网站 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载链接   null https://download.csdn.net/download/qq_41221322/88190168 视频演示 PHP流浪动物招领网站mysql数据库web结构apach

    2024年02月13日
    浏览(50)
  • PHP 旅游网站系统mysql数据库web结构apache计算机软件工程网页wamp

    一、源码特点     PHP 旅游网站系统 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为PHP APACHE,数据库为 mysql5.0,使用php语言开发。 代码下载  https://download.csdn.net/download/qq_41221322/87952564 视频

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包