修改thinkphp的主页面,连接数据库,实现增删改查

一、修改thinkphp的主页面

(一)使用sublime打开已安装完成的thinkphp的tp目录

使用sublime打开已安装完成的thinkphp的tp目录


tp.png

在thinkphp的tp目录输入cmd打开后

打开cmd.png

输入php run think,运行thinkphp

运行thinkphp.png

打开浏览器,输入http://127.0.0.1:8000/,thinkphp运行成功

thinkphp运行成功.png

(二)修改Index.php

打开tp\app\controller\Index.php,下面是Index.php的内容

Index.php.png

将以下内容

return '

:)

ThinkPHP V' . \think\facade\App::version() . '
14载初心不改 - 你值得信赖的PHP框架

[ V6.0 版本由 亿速云 独家赞助发布 ]
';

修改为

return 'hello,thinkphp';

(三)运行thinkphp,查看主页面

浏览器刷新页面后,修改成功


修改成功.png

(四)在Index.php添加function

打开tp\app\controller\Index.php,输入

    public function hello2($name = 'ThinkPHP6')
    {
        return 'hello2,' . $name;
    }
function存放位置.png

(五)保存并运行thinkphp

浏览器输入http://127.0.0.1:8000/index/hello2,出现以下页面则function运行成功

运行thinkphp成功.png

但是,浏览器输入http://127.0.0.1:8000/index/hello,报错

报错.png

解决办法:
打开tp\router\app.php,将下面这一句注释掉,它影响了hello的运行

Route::get('hello/:name', 'index/hello');
注释.png

浏览器刷新,则运行成功


运行成功.png

二、连接数据库

(一)下载安装mysql

(1)打开官网https://dev.mysql.com/downloads/mysql/,下载mysql压缩包
mysql.png

下载成功后,将它解压,解压成功后,进入mysql-8.0.21-winx64\mysql-8.0.21-winx64\bin,找到mysql.exe进行安装

mysql.exe.png
(2)创建data文件夹,创建my.ini

在解压好的mysql-8.0.21-winx64文件夹中,新建一个文件夹,命名为data(注意这里的data文件夹必须是空的)

新建空的data文件夹.png

在mysql-8.0.21-winx64下面,创建一个my.ini文件

my.ini.png

将以下代码复制进入my.ini中

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
 
[mysqld]
#skip-grant-tables 
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
 
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
 
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
basedir ="F:\mysql-8.0.21-winx64"   # 设置mysql的安装目录 
datadir ="F:\mysql-8.0.21-winx64\data"   # 设置mysql数据库的数据的存放目录,必须是data,或者是//xxx/data  
 
 
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
 
#服务端的编码方式
character-set-server=utf8mb4
[client]
#客户端编码方式,最好和服务端保存一致
loose-default-character-set=utf8mb4
 
[WinMySQLadmin]  
Server = "F:\mysql-8.0.21-winx64\bin\mysqld.exe"

请注意:这里有三处地方需要修改为你安装mysql的目录:
①basedir ="F:\mysql-8.0.21-winx64" # 设置你的安装mysql的目录
②datadir ="F:\mysql-8.0.21-winx64\data" # 设置你的mysql数据库的data文件夹的存放目录,必须是data
③Server = "F:\mysql-8.0.21-winx64\bin\mysqld.exe" # 设置你自己 mysql数据库的mysqld.exe文件的存放目录

修改配置文件,更改为你安装mysql的目录.png

(3)添加环境变量

此电脑右击,属性——高级系统设置——环境变量——系统变量——Path
添加:F:\mysql-8.0.21-winx64\bin


添加环境变量.png
(4)以管理员身份打开“命令行窗口”

必须要以管理员身份运行,输入命令mysqld --initialize-insecure --user=mysql

运行命令.png

完成后,可以在mysql-8.0.21-winx64目录下看到,原本为空的data,运行完之后里面多了许多文件和文件夹

data.png

如果没有以管理员的身份运行cmd,则输入mysqld -install,就会出现下面的报错信息

Install/Remove of the Service Denied!.png

原因就是没有用管理员的身份打开cmd
解决办法:
输入cmd,右击,以管理员身份运行

cmd.png

再次输入mysqld -install,就会成功,显示Service successfully installed.(表示Mysql服务添加成功)
输入命令net start mysql,启动Mysql服务

添加与启动mysql.png
(5)打开cmd,登录mysql后,修改密码(默认密码为空)

①以管理员身份打开“命令行窗口”,输入mysql -uroot -p,确认
②输入时,继续按下Enter(空密码),登录mysql
③输入命令use mysql;(切换到mysql数据库)
④输入命令ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; (设置密码)
⑤输入命令flush privileges; (设置完密码后,需要刷新MySQL的系统权限相关表,否则会出现拒绝访问)
⑥输入命令exit;(退出)

修改mysql密码.png

(二)下载安装navicat

下载navicat
链接: https://pan.baidu.com/s/13g4tdtx_c_VjD8CP3xlpnw 提取码: k1mi

下载完成后找到navicat.exe

navicat.exe.png

点击注册,输入注册码key后,即可使用

三、连接数据库

(一)使用navicat连接数据库

双击“navicat.exe”,选择“连接”

连接.png

连接名:localhost,密码是刚才修改mysql的密码

连接信息.png

连接完成后,右击,打开连接

打开连接.png

连接成功的效果图:

连接成功.png

(二)新建数据库

对任何一个数据库,选择右击,选择“新建数据库”

新建数据库.png

数据库名:test
字符集:utf8mb4 -- UTF-8 Unicode
确认

新建数据库信息.png

(三)添加表

test数据库,右击,打开数据库,找到表,右击,新建表

新建表.png

id int 不允许为空 设为主键
name varchar 100 可为空 (注释:姓名)
保存为user
(id这里一定要√“自动递增”,否则在后面数据的插入过程中会出现错误)

表的配置信息.png

(四)添加表数据

1 张三
2 李四
输入完成功之后,ctrl+s保存

表数据.png

(五)修改配置文件

打开tp\config\database.php,修改

/**写上你的数据库**/
'database'          => env('database.database', 'test'),
/**写上你的数据库的密码**/
'password'          => env('database.password', '12345678'),
修改database.php.png

打开tp.example.env,另存为.env,将错误提示信息打开写入用户的账号和密码

APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = root
PASSWORD = 12345678
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true

[LANG]
default_lang = zh-cn
.env的信息.png

四、实现增删改查

(一)查找数据

(1)根据id查找

使用sublime打开tp,再打开tp\app\controller\Index.php
添加下面的代码

public function index()
    {
        // 查询数据(根据id)
        $res = Db::table('user')->where('id', 1)->select();
        return $res;
        // 查询结果:[{"id":1,"name":"张三"}]
    }
根据id查找.png

浏览器输入http://127.0.0.1:8000,就会查询到id=1的信息

查询到id=1的信息.png
(2)根据name查找

添加下面的代码

    public function index2()
    {
        // 查询数据(根据name)
        $res = Db::table('user')->where('name', '李四')->select();
        return $res;
        // 查询结果:[{"id":2,"name":"李四"}]
    }
根据name查找.png

浏览器输入http://127.0.0.1:8000/index/index2,就会查询到name=2的信息

查询到name=2的信息.png

(二)插入数据

打开navicat,对user表右击,设计表,插入字段
address varchar 255 0
按ctrl+s保存


添加address字段.png

双击user表,对它进行刷新,就可以看到address字段

address字段添加成功.png
(1)利用save方法插入

添加下面的代码

// 插入数据(利用save方法)
    public function insert($name = 'ThinkPHP6')
    {
        $data = ['address' => 'bar', 'name' => '王五'];
        $res = Db::name('user')->save($data);
        return $res;
        // 查询结果:1
    }
save方法插入.png

浏览器输入http://127.0.0.1:8000/index/insert,就会出现1,表示插入成功

插入成功.png

打开user表查看,有王五这一行,表示插入成功

插入成功的数据.png
(2)利用save方法插入

添加下面的代码

    // 插入数据(利用insertGetId方法)
    public function insert2($name = 'ThinkPHP6')
    {
        $data = ['address' => 'bar', 'name' => '王五'];
        $res = Db::name('user')->insertGetId($data);
        return $res;
        // 查询结果:4
    }
insertGetId方法插入.png

浏览器输入http://127.0.0.1:8000/index/insert2,就会出现4,表示插入成功

插入成功.png

打开user表查看,有王五,id为4这一行,表示插入成功

插入成功的数据.png

(三)更新数据

(1)利用save方法进行更新

添加下面的代码

    public function update($name = 'ThinkPHP6')
    {
        $res = Db::name('user')
        ->save(['id' => 1, 'name' => 'thinkphp']);
        return $res;
        // 查询结果:1
    }
利用save方法进行更新数据.png

浏览器输入http://127.0.0.1:8000/index/update,就会出现1,表示更新成功

利用save更新数据成功.png

打开user表查看,有id为1,name为thinkphp这一行,表示更新成功

利用save更新数据成功.png
(2)利用update方法进行更新

添加下面的代码

// 更新数据(利用update方法)
    public function update2($name = 'ThinkPHP6')
    {
        $res = Db::name('user')
        ->where('name', 'thinkphp')
        ->update(['name' => '修改']);
        return $res;
        // 查询结果:1
    }
利用update方法进行更新数据.png

浏览器输入http://127.0.0.1:8000/index/update2,就会出现1,表示更新成功

利用update更新数据成功.png

打开user表查看,有id为1,name为修改这一行,表示更新成功

利用update更新数据成功.png

(四)删除数据

(1)删除单个数据

添加下面的代码

    // 删除数据(删除单个数据)
    public function delete()
    {
        $res = Db::table('user')->delete(1);
        return $res;
        // 查询结果:1
    }
删除单个数据.png

浏览器输入http://127.0.0.1:8000/index/delete,就会出现1,表示更新成功

单个数据删除成功.png

打开user表查看,没有有id为1,name为修改这一行,表示删除成功

单个数据删除成功.png
(2)删除一组数据

添加下面的代码

 // 删除数据(删除一组数据)
    public function delete2()
    {
        $res = Db::table('user')->delete([2,3]);
        return $res;
        // 查询结果:2
    }
删除一组数据.png

浏览器输入http://127.0.0.1:8000/index/delete,就会出现2,表示删除成功

删除一组数据成功.png

打开user表查看,没有有id为2,name为李四,id为3,name为王五这两行,表示删除成功

删除一组数据成功.png

详情可以参照thinkphp的官方文档:
https://www.kancloud.cn/manual/thinkphp6_0/1037530

五、出现的错误

进行增删改查时,浏览器出现“could not find driver”,原因是php.ini里面没有开放mysql
解决办法:
找到php7\php.ini,用sublime打开

php.ini所在位置.png

将extension=pdo_mysql前面的英文“;”删除,保存

打开mysql权限.png

重启php,则可以进行增删改查

成功结果举例.png

你可能感兴趣的:(修改thinkphp的主页面,连接数据库,实现增删改查)