phpstudy创建MySQL Front的数据库连接

说实话,我很难理解如何使用MySQLFront连接phpstudy数据库。
遵循这些步骤基本上没有什么问题,但我需要给你一些细节,否则你可能会感到困惑。

例如,对于“登录名”,我通常喜欢使用特定的项目名称,例如“laravel_test”,以便稍后通过查看日志来了解它是哪个环境数据库。
地址和用户名如你所说,但有一个小提示:如果你安装了最新版本的phpstudy,密码可能早就被更改了。
这种情况我已经遇到过好几次了。
我忘记了我设置的密码。
最后只好去phpstudy安装目录找到配置文件并手动修改。

最烦人的就是更改端口号。
我记得曾经将phpstudy端口3 3 06 更改为3 3 07 以进行集群测试。
结果,MySQLFront无法连接。
纠结了很久,我发现必须在高级选项中手动填充端口。
这个细节很容易被忽视,尤其是对于新手来说。

检查连接时,请注意:如果您在 phpstudy 中创建新数据库,MySQLFront 可能不会自动刷新列表。
我建议手动单击左上角的“刷新”按钮,或者干脆重新启动该工具。
这个技巧每次都有效。

哦,对了,插图部分,我建议你用截屏软件直接拍照,比文字描述直观多了。
我只是依靠屏幕截图来了解“高级”选项在哪里。

总之,按照你写的步骤基本上是没有问题的,但是需要注意这些小陷阱。
实践才是真知,尝试之后你就会明白。

php连接数据库的三种方式的总结

PHP 连接 MySQL 的方式主要有三种。
我来说说我个人的理解吧。

1 .面向对象的MySQLi 这些东西是用对象来写的。
代码看起来比较清晰一些。
像这样 PHP $conn = new mysqli('localhost', 'root', 'root'); if ($conn->connect_errno) { die("无法连接:" . $conn->connect_errno); } 回显“已连接”; $conn->close(); 适合自己喜欢的人。
可以看到,创建新的mysqli()时,操作方法是->,非常方便。

2 面向过程的MySQLi 这是函数调用的旧例程。
如果您熟悉过程式编程,则可以顺利使用它。
像这样 PHP $conn = mysqli_connect('localhost', 'root', 'root'); 如果 (!$con) { echo "连接失败"; die("连接失败:" .mysqli_connect_error()); } echo "连接成功"; mysqli_Close($conn); 查看 mysqli_connect() 和 mysqli_Close(),其中函数被来回调用。
有些人喜欢这样写。

3 阿曼石油开发公司 这个东西就是数据库访问层。
支持多种数据库。
使用异常处理。
像这样的代码 PHP 尝试{ $conn = new PDO("mysql:host=localhost;dbname=mysql", 'root', 'root'); echo "连接成功"; } catch (PDOException $e) { var_dump($e); 回声 $e->getMessage(); } $con = 空; 看看这个尝试...接受它。
如果发生错误,则会引发异常。
使用起来非常方便。
现在很多项目都使用PDO,并且共享数据库得到很好的支持。

关闭连接: MySQLi 对象 $conn->close() MySQLi 过程 mysqli_Close($conn) PDO$conn = null
选择哪一个取决于个人喜好。
PDO现在用得很多。
方便遍历数据库,省去了异常处理的麻烦。

phpstudy如何打开本地数据库?

嗯,昨天我在帮一个朋友调试他的网站,但是他的本地数据库打不开,弄得满头大汗。
我看了一下他的电脑,发现他用的是phpstudy8 .0.7 我问他,你的MySQL服务启动了吗?他说话了。
我又问,管理工具安装了吗?他说他不是假装。
是的,他忘记了很多这一步。

你看,这很有趣。
比如我上次使用phpMyAdmin的时候,点进去发现数据库列表是空的。
我以为是错误,结果发现数据库没有创建。
好吧,我得回去再做一次。
这意味着仅仅安装工具是不够的,您还必须能够创建数据库。

他的电脑屏幕是2 1 英寸,分辨率设置的有点低,操作起来比较困难。
我给他调整了一下,把字体调大了。
此时,打开phpstudy,点击环境管理。
界面变得更加清晰。
当他看着它时,他意识到了一些事情。

安装 phpMyAdmin 只需要两到三分钟。
界面,绿色,看起来不错。
安装完成后,点击管理,会弹出一个对话框,要求你选择一个数据库名称,他会直接填写测试。
我一看,噢,他上次创建了一个测试数据库,然后删除了,但是并没有完全删除。
是的,你必须重新开始。

新建一个数据库,点击执行,确定。
此时,再次单击“打开”,选择刚刚创建的测试数据库,然后单击“确定”。
然后就可以看到数据表了。
他高兴极了,说道:“嘿嘿,这个数据库终于可以用了。

不过话又说回来,他之前为什么忘记安装管理工具呢?你觉得很麻烦吗?或者您根本不知道这一步的存在?有时候,人们就是这样,如果觉得容易的话,他们就会跳过一些事情,结果却遇到麻烦,不得不重新开始。
这就像打扫房间一样。
垃圾直接扔掉没问题,但如果收集太多,垃圾就会堆积起来,你就得花大半天的时间来清理。

PHP如何连接到MySQL数据库_PHP连接MySQL数据库的步骤与代码示例

哈,这东西看上去挺齐全的,但实际使用起来有时候却很头疼。
上周,一位客户问我,为什么他的PHP和MySQL程序总是出现乱码。
我一看,原来是字符集不对。
你说这个细节很容易被忽视。

看,我总是在 mysqli 和 PDO 之间左右为难。
Mysqli是MySQL自己生产的。
感觉写起来很容易,而且性能有时会好一点。
但问题是,如果项目后期想改数据库,比如突然加PostgreSQL,就得重写连接部分,使用mysqli。
这是行不通的。
PDO的优点是接口统一。
后面添加哪个数据库并不重要,只需更改prepare()方法即可。
这很好。

我自己踩到的陷阱是一份准备好的声明。
起初,我总觉得不方便。
手动绑定参数很难写,所以我只想使用 $sql = "INSERT INTO ... VALUES('$name', '$email')";这样写 有时候,调试不是问题,但是当有人真正在线注入时,就无所谓了。
后来又给我上了几堂课。
现在,当我编写代码时,当我看到外部输入时,我立即想使用预处理。
这个习惯养成了,写得也更快了。
看上面的例子,mysqli和PDO的预处理用法还是有很大区别的。
mysqli是bind_param,PDO是bindParam。
你需要清楚地记住这一点。

就字符集而言,现在最常用的是utf8 mb4 尤其是在支持emoji方面,utf8 是不够的。
设置字符集时,我一般都是在连接数据库之后、检查第一条数据之前设置。
不要忘记这一步。
如果你忘记了,它可能会默认使用latin1 ,而中文将只是一个乱码字符串。

在安全性方面,除了预处理之外,输入验证也很重要。
有时用户发送的数据可能与您期望的不同。
例如,手机号码有+号,或者电子邮件地址前面有空格。
进入数据库之前需要清除它。
必须强调最小特权原则。
应授予数据库用户操作所需表的权限,并且不允许他们删除数据库。
生产环境错误消息是否直接显示给用户?不疼吗?只需给出“系统错误,请稍后重试”,然后将其记录在日志本身中。
这是正确的做法。

调试时,连接失败是最常见的。
我通常会先检查用户名和密码是否正确,数据库名是否确实存在,MySQL服务是否打开。
有时是端口问题或网络阻塞。
授权问题有时更为复杂。
例如,在Linux下,连接MySQL需要访问mysql.sock文件。
如果未正确授予此文件的权限,则将无法进行连接。
防火墙也可能会阻止它。

看上面的代码示例,mysqli的$conn->connect_error,PDO的try-catch,这个错误处理必须要写,否则程序一出现错误就会崩溃,用户体验很差。

不管怎样,选择mysqli还是PDO,取决于你的项目需要。
如果您只是坚持使用 MySQL 并追求终极性能,那么 mysqli 非常棒。
如果项目比较大,或者以后可能会改变数据库,PDO就比较灵活。
但无论选择哪一种,为了安全起见,都必须使用准备好的语句,必须正确设置字符集,权限必须很小,并且必须验证输入。
一旦解决了这些细节,编写代码可能会更慢,但这绝对是值得的。

我还在思考一个问题,就是现在很多框架,比如Laravel、ThinkPHP,底层都很好的用PDO封装起来,直接使用ORM来处理数据库。
看起来他们很少直接与 mysqli 或 PDO 交互。
你认为,未来,会有越来越多的人不再需要直接编写这些扩展代码吗?不过,如果你现在正在学习,你仍然需要了解这些基本原理。