【php】PHP数据库访问

【php】PHP数据库访问

文章目录

  • MySQL命令行进入
    • 方式一:在Windows命令行方式下输入MySQL命令进入
    • 方式二:WAMP的操作菜单中进入
  • MySQL命令行操作
  • phpMyAdmin基本操作
  • PHP连接数据库
  • PHP执行SQL语句
  • mysqli_fetch_row记录集获取
  • mysqli_fetch_assoc记录集获取
  • mysqli_fetch_array记录集获取

MySQL命令行进入


方式一:在Windows命令行方式下输入MySQL命令进入

命令格式

MySQL -h主机地址 -u用户名 -p用户密码

-h主机地址:一般是IP地址或域名,如果数据库在本机的话,可以写:如 -h127.0.0.1或者-hlocalhost

-u用户名:为登录数据库的用户名,如root

-p密码:为登录数据库用户的密码。

操作步骤

  1. 进入windows命令行窗口(cmd)
  2. 输入Mysql命令行方式
    在这里插入图片描述

因为默认在当前路径下查找mysql命令,所以要去寻找Mysql路径

  1. 打开资源管理器,复制mysql.exe所处地址
    在这里插入图片描述
  2. 粘贴到cmd中,进入该路径
    在这里插入图片描述

    去掉C:,按下回车
    在这里插入图片描述
  3. 输入mysql语句
    6.

mysql -hlocalhost -uroot -p(密码空直接回车)

  1. 将mysql.exe所在路径设置为系统预先设置好的路径,保障在任意路径下都可以执行mysql命令
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    完成,点击确认退出。
    在这里插入图片描述

    成功~

方式二:WAMP的操作菜单中进入

在这里插入图片描述

在这里插入图片描述

成功~

MySQL命令行操作


1 查看数据库:show databases;
2 创建数据库:create database数据库名;
3 选择数据库: use 数据库名称;
4 查看数据库表:show tables;
5 创建一个数据库表,如:create table (name varchar(20), sex char(1));
6 显示表的结构: describe mytable;
7 往表中加入记录,如:insert into mytale values (”Cao Shugui”,”M”);
8 删除记录 ,如:delete from mytable;
9 更新记录,如:update mytable set sex=”f” where name=’Cao Shugui’;
10 删除表,如:drop table mytale;
11删除数据库:drop database 数据库名

phpMyAdmin基本操作


phpMyAdmin 是众多 MySQL图形化管理工具中使用最为广泛的一种,这里主要学习phpMyadmin的基本操作

操作1:打开进入phpMyAdmin
操作2:创建数据库
操作3:创建表结构
操作4:向表中插入记录
操作5:编辑、导出、删除记录
操作6:SQL语句书写并执行
以前都学过。。

PHP连接数据库


很大一部分和之前文章【web前端开发】数据库MySQL在开发环境的操作重复,接下来只讲不同之处。

不同于之前的连接方式

    <?php
        //way1
        $conn=mysqli_connect("localhost","root","","mydemo");
        if(!$conn)
        {
            die("数据库连接失败".mysqli_connect_error());
        }
        echo "数据库连接成功";     
        //way2
        $conn=mysqli_connect("localhost","root","","mydemo")or die("数据库连接失败");
        echo "数据库连接成功"; 
    ?>

数据库连接的语法格式可以是:

mysqli_connect(“主机”, “用户名”, “密码”,”数据库名”)
密码无:则不填
数据库名

在这里插入图片描述

PHP执行SQL语句


PHP下执行SQL语句的格式:

mysqli_query (连接标识符,SQL语句);

修改字符集:

mysqli_query($conn,‘set names utf8’); //告诉服务器,本页面的字符集是utf8

1.插入语句insert

$conn=mysqli_connect("localhost","root","111111","mydb") or die("数据库连接失败");
echo "数据库连接成功";
mysqli_query($conn,'set names utf8'); //告诉服务器,本页面的字符集是utf8
$sql="insert into student(stu_no,stu_name,sex,birthdate,telephone,email) values('17010105','王平','男','1998-05-01','18806547811','wangping@qq.com')";
$result=mysqli_query($conn,$sql)or die("数据插入失败".mysqli_error($conn));
echo "数据插入成功";

2.记录修改语句update
3.记录删除语句delete
格式同上:

$sql=……
$result=mysqli_query($conn,$sql)

mysqli_fetch_row记录集获取


前言

mysqli_fetch_row:可以从记录集中提取当前行数据到一个索引数组中,数组以数字为索引,或者说以数字为键

获取一行数据到数组

<?php
    $conn=mysqli_connect("localhost","root","","mydemo") or die("数据库连接失败");
    mysqli_query($conn,'set names utf8');
    $sql="select * from stu";//原来是stu这里。。
    $result=mysqli_query($conn,$sql)or die("数据查询失败");
    $row=mysqli_fetch_row($result);
    print_r($row);
    $row=mysqli_fetch_row($result);
    print_r($row);
?>

在这里插入图片描述

循环打印所有记录-print_r方式

    $conn=mysqli_connect("localhost","root","","mydemo") or die("数据库连接失败");
    mysqli_query($conn,'set names utf8');
    $sql="select * from stu";
    $result=mysqli_query($conn,$sql)or die("数据查询失败");
    while($row=mysqli_fetch_row($result))
    {
        print_r($row);
    }

在这里插入图片描述

循环-直接显示元素值

    $conn=mysqli_connect("localhost","root","","mydemo") or die("数据库连接失败");
    mysqli_query($conn,'set names utf8');
    $sql="select * from stu";
    $result=mysqli_query($conn,$sql)or die("数据查询失败");
    while($row=mysqli_fetch_row($result))
    {
        echo "$row[0],$row[1],$row[2],$row[3],$row[4],$row[5]";
        echo "<br/>";
    }

在这里插入图片描述

mysqli_fetch_assoc记录集获取


mysqli_fetch_assoc:可以从记录集中提取数据到一个关联数组中,以记录集中的字段为键

获取记录集到关联数组

        $conn=mysqli_connect("localhost","root","","mydemo") or die("数据库连接失败");
        mysqli_query($conn,'set names utf8');
        $sql="select * from stu";
        $result=mysqli_query($conn,$sql)or die("数据查询失败");
        $row = mysqli_fetch_assoc($result);
        print_r($row);
        $row = mysqli_fetch_assoc($result);
        print_r($row);

在这里插入图片描述

和 mysqli_fetch_row + 循环输出不同之处:

此时键为各类的名称,而mysqli_fetch_row键为数字

循环处理记录集数据

        $conn=mysqli_connect("localhost","root","","mydemo") or die("数据库连接失败");
        mysqli_query($conn,'set names utf8');
        $sql="select * from stu";
        $result=mysqli_query($conn,$sql)or die("数据查询失败");
        while($row=mysqli_fetch_assoc($result))
        {
            echo "$row[stu_no],$row[stu_name],$row[gender],$row[telephone],$row[age],$row[college]";
            echo "<br/>";
        }

在这里插入图片描述

与上面的方法输出一致

foreach显示各元素

        $conn=mysqli_connect("localhost","root","","mydemo") or die("数据库连接失败");
        mysqli_query($conn,'set names utf8');
        $sql="select * from stu";
        $result=mysqli_query($conn,$sql)or die("数据查询失败");
        while($row=mysqli_fetch_assoc($result))
        {
            foreach($row as $k=>$v)
                {
                    echo $v;
                    if($k!="email")echo ",";
                }
            echo "<br/>";
        }

在这里插入图片描述

mysqli_fetch_array记录集获取


生成的数组既有数字索引,又有关联键名

把重复出现的语句写在conn.php中了,后面都用 require "conn.php"引出

	require "conn.php";
	$conn=mysqli_connect("localhost","root","","mydemo") or die("数据库连接失败");
    mysqli_query($conn,'set names utf8');
    $sql="select * from stu";
    $result=mysqli_query($conn,$sql)or die("数据查询失败");

获取数组

        require "conn.php";
        $row=mysqli_fetch_array($result);
        print_r($row);

两种数组都生成了

在这里插入图片描述

循环-数字索引

require "conn.php";
while($row=mysqli_fetch_array($result))
{
    $cols=count($row)/2;
    for($i=0;$i<$cols;$i++)
    {
         echo $row[$i];
         if($i<$cols-1)echo ",";
    }
    echo "<br/>";
}

花里胡哨的。。while里面的逻辑同下:

echo "$row[0],$row[1],$row[2],$row[3],$row[4],$row[5]";
echo "<br/>";

在这里插入图片描述

循环-关联键名

 		require "conn.php";
        while($row=mysqli_fetch_array($result))
        {
            foreach($row as $k=>$v)
                {
                    if(!is_numeric($k)){
                        echo $v;
                        if($k!="email")echo ",";
                    }
                }
            echo "<br/>";
        }

在这里插入图片描述

逻辑同上,但是不同之处在于if(!is_numeric($k)),去掉则每个数据都打印两遍,你懂的。。

                       

点击阅读全文

上一篇 2023年 6月 6日 am2:42
下一篇 2023年 6月 6日 am10:14