vscode+phpstudy连接使用mysql(解决phpstudy中mysql无法启动的问题)

vscode+phpstudy连接使用mysql(解决phpstudy中mysql无法启动的问题)

使用vscode+phpstudy配置php开发环境网上很文章都是挺好的,都成功解决了我的问题。但是对于使用mysql方面始终找不到很系统的文章,而且很多解决方法我都不适用,而且找到的文章都是几年前的,并且小皮的版本都比较低,所以我总结了下自己遇到的问题包括mysql的连接使用,亲测有效。
1.小皮内的mysql无法启动
首先遇到最多的问题就是小皮(phpstudy)的mysql无法启动,原因就是自己已经下过mysql并且已经开启服务了。
在这里插入图片描述
win10直接搜索服务就能查看自己的mysql项目了。这边大部分解释都是小皮自带的mysql和自己下载的mysql都占用了3306端口,但是修改端口后我仍是无法启动。
在这里插入图片描述
还有文章说在服务中可以手动启动MySQLa,据说这是小皮自带的mysql的名称,但是我在服务中并未找到该项目,而且我的服务中只有一个mysql项目,右键属性查看文件路径,发现这是我自己下载的那个mysql,并非是小皮自带的,这与大部分文章描述地都不一致。我试了许多方法,最终只有一个最有效。
首先把自己下载的mysql内的data文件夹备份(全部备份也可以,都是为了防止数据库中的数据丢失),然后搜cmd右键以管理员身份打开。
在这里插入图片描述

sc delete 服务中自己mysql项目的名称

输出上述代码,比如我服务中的项目是MySQL,所以我就输入
sc delete MySQL 将该服务删除,然后就可以启动小皮中的mysql了,如果还是不行,建议重启一下电脑。
后续如果还想使用自己下的数据库,可以重新启动该服务。
最后成功启动了mysql,而且一切功能正常,然后我又回到服务中查找mysql项目,发现一个都没有。这是什么原因我也不清楚,我只能粗浅地认为最新版的小皮可能就是这样吧。反正不影响使用就行。

2.正式使用mysql
启动mysql(一键启动WAMP),默认用户和密码都是root。然后打开小皮面板右上角数据库工具,推荐使用phpMyAdmin,因为SQL_Front有很多问题,网上搜说是跟8.0数据库的兼容出现问题,解决方法找到很多但不能解决全部问题。主要还是phpMyAdmin更全面好用吧,至少对于新手上路没有什么复杂的操作。(找不到数据库工具的去小皮左侧“软件管理”下载)
打开phpMyAdmin输入用户密码,点击上方数据库创建数据库
在这里插入图片描述
输入库名创建成功后左侧找到对应数据库创建新表,这个就不多赘述了,网上教程很多,主要讲容易出问题的地方。
数据表有了后打开vscode准备连接数据库。
在这里插入图片描述
点击MYSQL的+号,在正上方依次输入自己的数据库信息,第一个一般都是localhost,第二个是用户名,一般是root,第三个是密码,没有自己改默认也是root,第四个是端口,没有自己改就是3306,然后一直回车就行了。只要这些信息没错误,并且数据库这些都启动了,肯定没问题。

在这里插入图片描述
能看到自己的数据库就说明ok了。
基本配置结束就开始动手写代码了。
我是使用PDO连接数据库,跟mysqli还有其他连接方法有什么差异可以自己搜,反正强推PDO。
上代码看注释啊:

<?php

/**
 * 连接数据库
 */
$servername = "localhost";
$username = "root";
$password = "root";
$dsn = "mysql:host=$servername;dbname=test;charset=utf8";
//数据源:类型:host=主机名;dbmame=数据库名;charset=编码;
try {
    $conn = new PDO($dsn, $username, $password);
    echo "连接成功<br/>";

    //$conn = null;//两种方法关闭数据库
    //unset($conn);
} catch (PDOException $e) {

    echo $e->getMessage();
}

连接成功后继续:

<?php

/** 
 *连接并进行数据库操作
 * 1.连接数据库,创建PDO对象
 * 2.创建预处理对象
 * 3.执行sql语句
 * 4.解析结果集
 * 5.遍历结果集
 * 代码的(1)(2)...注释就是以上的步骤
 */
require 'mysql_test1.php'; //引入连接文件(1)
//tb_id 命名占位符
$sql = "SELECT * FROM `tb_admin` WHERE `tb_id`>:tb_id";//这边的语句只是示例
$stmt = $conn->prepare($sql); //(2)stmt就是预处理对象
$stmt->setFetchMode(PDO::FETCH_ASSOC);//只获取关联部分,忽略索引。删调这个句子就能发现输出有什么不同
if ($stmt->execute([':tb_id' => -1])) //给占位符赋值(3)
{
    $res = $stmt->fetchAll(); //(4)
} else {
    print_r($stmt->errorInfo());
    die;
}

//print_r($res);//(5)
foreach ($res as $row) {
    echo print_r($row, true), '<hr>';
}
echo '共有'.count($res).'记录满足要求'.'<hr>';

这边再说一下初学者可能会有的困惑,将.php文件以网页方式打开只能看到代码,要通过服务器打开才是执行后的结果(简单说就是链接的形式打开)。这个也可以在vscode中配置,当然,小皮中的数据库和服务器都要打开。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hfhua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值