php 7.4连接MySQL
2022-07-28 14:58:37
160
{{single.collect_count}}

准备工作:

  1. PhpStorm配置php开发环境
    (1)打开PhpStorm,点击File->Settings:
    在这里插入图片描述
    (2)点击"Languages & Frameworks”,找到PHP
    在这里插入图片描述
    (3)选择php版本,选择CLI Interpreter(客户端解释器,需要去你下载的PHP,解压目录下找)
    在这里插入图片描述
    在这里插入图片描述
  2. 修改php.ini文件
    新版的php 7中,并没有php.ini,但是有两个以php.ini开头的文件:php.ini-development和php.ini-production,复制其中一个,重命名为php.ini。
    打开php.ini,主要修改两个地方(修改这两个地方其实是为了能够使用pdo和mysqli连接MySQL数据库):
    (1)去掉extension=mysqli前面的“;”:
    在这里插入图片描述
    (2)去掉extension=pdo_mysql前面的“;”:
    在这里插入图片描述
    (3)去掉 On windows: extension_dir =“ext”前面的分号,并将extension_dir的值修改成php扩展包所在的路径(php解压目录下,有一个名为ext的文件夹,用于存储dll文件)。
    在这里插入图片描述
    在这里插入图片描述
  3. 连接MySQL测试:
    (1)使用PDO连接MySQL(参照菜鸟教程上的样例):
<?php$servername = "localhost";$username = "root";$password = "123456";try {$conn = new PDO("mysql:host=$servername;dbname=emailmarket;port=3306", $username, $password);echo "连接成功";}catch(PDOException $e){echo $e->getMessage();}?>

在这里插入图片描述
(2)使用 MySQLi连接:

<?php$servername = "localhost";$username = "root";$password = "123456";// 创建连接$conn = new mysqli($servername, $username, $password);// 检测连接if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);}echo "连接成功";?>

测试截图:
在这里插入图片描述
4.读取数据库表中的数据:
(1)PDO:

<?phpecho "<table style='border: solid 1px black;'>";echo "<tr><th>邮箱</th><th>授权码</th><th>smtp服务器</th></tr>";class TableRows extends RecursiveIteratorIterator {function __construct($it) {parent::__construct($it, self::LEAVES_ONLY);}function current() {return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";}function beginChildren() {echo "<tr>";}function endChildren() {echo "</tr>" . "\n";}}$servername = "localhost";$username = "root";// 用户名$password = "123456";// 密码$dbname = "emailmarket"; // 数据库名称try {$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);$stmt = $conn->prepare("SELECT * FROM tb_account");$stmt->execute();// 设置结果集为关联数组$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {echo $v;}}catch(PDOException $e) {echo "Error: " . $e->getMessage();}$conn = null;echo "</table>";?>

在这里插入图片描述
(2)MySQLi:

<?php$servername = "localhost";$username = "root";$password = "123456";$dbname = "emailmarket";// 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// Check connectionif ($conn->connect_error) {die("连接失败: " . $conn->connect_error);}$sql = "SELECT * FROM tb_account";$result = $conn->query($sql);if ($result->num_rows > 0) {// 输出数据while($row = $result->fetch_assoc()) {echo "Email: " . $row["account"]. " - Password: " . $row["password"]. " - SMTP: " . $row["smtp"]. "<br>";}} else {echo "0 结果";}$conn->close();?>

在这里插入图片描述
参考链接:
https://blog.csdn.net/Bruce_Wang_Lelouch/article/details/88946459
https://blog.csdn.net/weixin_34381687/article/details/91774540
https://www.runoob.com/php/php-mysql-select.html
https://www.php.cn/jishu/php/409890.html
https://www.cnblogs.com/starfish29/p/10898602.html

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}