PHPstorm操作mysql数据库及phpmyadmin的乱码问题解决

前言

也不能说是完全理解了里面的逻辑和问题吧,只是目前所掌握的方法可以使得在浏览器输出和phpmyadmin里面的查看都不会产生乱码。

具体操作

通过php代码链接数据库后创建一个表Worker

<?php
$mysql=mysqli_connect("localhost","root","123456","mysqldb");
if(empty($mysql)){
    die("mysql_connet failed:".mysqli_connect_error());
}
echo ("connect to ".mysqli_get_host_info($mysql));

$sql="CREATE TABLE Worker ( EmpID INT AUTO_INCREMENT PRIMARY KEY ,EmpName varchar(50) NOT NULL ,
        DeID INT,Title varchar(50),Salary INT)";
echo "<br/>";
if($mysql->query($sql)===TRUE)
{
    echo "table create sucessful";
}
else
{
    echo "table create 错误".$mysql->error;
}
//1向表中插入数据

//2向表中插入数据

mysqli_close($mysql);
echo ("<br/>关闭数据库链接");

浏览器运行结果
在这里插入图片描述
phpmyadmin截图
在这里插入图片描述
向表中插入数据

$exec="INSERT INTO Worker (EmpName,DeID,Title,Salary) values('王五',1,'职员',3500),('赵六',2,'部门经理',6500),('高七',2,'职员',2500)";
if ($mysql->multi_query($exec) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: "."<br>" . $mysql->error;
}

报错,原因是字符串不匹配(我也不知道为啥,这个Phpstorm里面我的字符串就是utf8格式的啊)
在这里插入图片描述
添加一行代码,插入成功了

mysqli_query($mysql,"SET NAMES utf8");
$exec="INSERT INTO Worker (EmpName,DeID,Title,Salary) values('王五',1,'职员',3500),('赵六',2,'部门经理',6500),('高七',2,'职员',2500)";

在这里插入图片描述
phpmyadmin里面也是没有乱码的
在这里插入图片描述
输出插入的数据到浏览器看一下,也是没有乱码的

echo "<br/>";
$sql="SELECT EmpName,Title,Salary FROM Worker";//这是个命令行吧
$result=$mysql->query($sql);
//循环处理表中的记录
while ($row=$result->fetch_row())
{
    print ($row[0]." ".$row[1]." ".$row[2]."<br/>");
}
$result->free();

在这里插入图片描述
现在查看一下phpmyadmin里面这个Worker表的编码格式,其实是gb2312的
在这里插入图片描述
通过上述方法创建了表之后,如果只是需要查找表中的数据需要在查找前添加一行代码

mysqli_query($mysql,"SET NAMES utf9");

否则无法显示中文
在这里插入图片描述

其他

我觉得上面的方法我没有完全搞明白吧,这相当于通过php往表中插入的数据编码格式是utf8但,数据表的格式又是gb2312,但是可以正常显示。
我尝试了在phpmyadmin里面把gb2312改成utf8,这样的情况下,在Php编辑器中不添加格式转换代码就可以直接插入中文到数据表中,但是在phpmyadmin中显示的是中文乱码。
在这里插入图片描述
在这里插入图片描述
通过下面代码给表中添加数据,会导致在Phpmyadmin中出现中文乱码,但浏览器中不会出现乱码

$exec="INSERT INTO Worker (EmpName,DeID,Title,Salary) values('王五',1,'职员',3500),('赵六',2,'部门经理',6500),('高七',2,'职员',2500)";
$sql="SELECT EmpName,Title,Salary FROM Worker";//这是个命令行吧
$result=$mysql->query($sql);
//循环处理表中的记录
while ($row=$result->fetch_row())
{
    print ($row[0]." ".$row[1]." ".$row[2]."<br/>");
}
$result->free();

在这里插入图片描述

后记

有很多方法是操作MYSQL的文件配置什么的,以及操作数据库的,感觉这样会是一劳永逸的方法吧,但是我也不是太感轻易尝试修改文件什么的,经过探索和尝试,上面的方法就不要修改数据库或者表的属性什么的了,直接在插入数据之前声明插入数据的编码格式就好了,感觉也算是比较方便的做法了吧。
我把代码改成了函数风格,感觉操作方便多了,不用每次都要去搞一大段的注释什么的了。

<?php
$mysql=mysqli_connect("localhost","root","123456","mysqldb");
if(empty($mysql)){
    die("mysql_connet failed:".mysqli_connect_error());
}
echo ("connect to ".mysqli_get_host_info($mysql));
//

function droptable($mysql)
{
    $sql="DROP TABLE Worker";
    if($mysql->query($sql)===TRUE)
{
    echo "<br/>drop tabble sucessful";
}
else
{
    echo "table drop 失败".$mysql->error;
}
}
function creattable($mysql)
{
    $sql="CREATE TABLE Worker ( EmpID INT AUTO_INCREMENT PRIMARY KEY ,EmpName varchar(50) NOT NULL ,
        DeID INT,Title varchar(50),Salary INT)";
echo "<br/>";
if($mysql->query($sql)===TRUE)
{
    echo "table create sucessful<br/>";
}
else
{
    echo "table create 错误".$mysql->error;
}
}

function insertdata($mysql)
{
    mysqli_query($mysql,"SET NAMES utf8");
$exec="INSERT INTO Worker (EmpName,DeID,Title,Salary) values('王五',1,'职员',3500),('赵六',2,'部门经理',6500),('高七',2,'职员',2500)";
if ($mysql->multi_query($exec) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: "."<br>" . $mysql->error;
}

}
droptable($mysql);
creattable($mysql);
insertdata($mysql);

mysqli_query($mysql,"SET NAMES utf8");
echo "<br/>";
$sql="SELECT EmpName,Title,Salary FROM Worker";//这是个命令行吧
$result=$mysql->query($sql);
//循环处理表中的记录
while ($row=$result->fetch_row())
{
    print ($row[0]." ".$row[1]." ".$row[2]."<br/>");
}
$result->free();
mysqli_close($mysql);
echo ("<br/>关闭数据库链接");
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PhpStorm 中,你可以使用内置的数据库工具来管理 MySQL 数据库并创建主外键关系图。以下是一些简单的步骤来使用这些功能: 1. 首先,确保你已经成功连接到你的 MySQL 数据库。在 PhpStorm 的顶部菜单中,选择 "View"(视图)> "Tool Windows"(工具窗口)> "Database"(数据库)来打开数据库工具窗口。 2. 在数据库工具窗口中,点击左上角的加号图标,选择 "Data Source"(数据源)> "MySQL"(或者你所使用的数据库类型)。 3. 在弹出的对话框中,填写数据库连接信息,包括主机名、端口号、数据库名称、用户名和密码等。点击 "Test Connection"(测试连接)按钮来验证连接是否成功。 4. 连接成功后,你将在数据库工具窗口中看到你所连接的数据库。展开数据库节点,你可以看到数据库中的各个表格。 5. 要创建主外键关系图,你可以右键点击某个表格,选择 "Diagrams"(图表)> "Show Visualization"(显示可视化)。 6. 在可视化界面中,你可以看到该表格的字段、主键和外键等信息。你可以拖动表格和字段来重新布局,以便更清楚地显示关系。你还可以使用工具栏上的按钮来调整显示选项。 7. 若要创建主外键关系,你可以在可视化界面中选择一个字段,然后拖动到另一个表格的对应字段上。这将创建一个外键关系。你可以右键点击关系线,选择 "Edit Relationship"(编辑关系)来设置关系的类型和其他属性。 8. 一旦你创建了主外键关系,你可以在可视化界面中轻松地浏览和理解数据库的结构和关系。 请注意,这只是简单介绍了如何使用 PhpStorm 内置的数据库管理工具来创建主外键关系图。实际上,PhpStorm 还提供了更多高级的数据库管理功能,例如执行 SQL 查询、导入导出数据等。你可以通过查阅 PhpStorm 的官方文档来深入了解这些功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值