PHP基础语法—day35(笔记)

本文详细介绍了PHP连接和操作MySQL数据库的步骤,包括错误处理、查询、结果集处理等。同时,讲解了Cookie和Session的使用,如设置、销毁、登录状态保存等。此外,还涵盖了文件操作,如读取、写入、删除文件及文件信息获取。通过实例展示了如何在PHP中实现这些功能。
摘要由CSDN通过智能技术生成

主要内容:

1.php连接数据库

(1)在连接数据的时候出现了以下问题该如何解决?

<?php
     //1.连接数据库
     $link = mysqli_connect('localhost','root');
     //2.判断数据库是否连接成功
     if (!$link){
        echo '数据库连接失败!';
     }
     //3.设置字符集
     mysqli_set_charset($link,'utf8');
     //4.选择数据库
     mysqli_select_db($link,'e_market');
     //5.准备sql语句
     $sql = "select * from aaa";
     //6.发送sql语句
     $res = mysqli_query($link,$sql);
     if (!$res) {
        printf("Error: %s\n", mysqli_error($link));
        exit();
    }
	//处理结果集
    $rows = mysqli_fetch_assoc($res);
    var_dump($rows);
    //关闭数据库释放资源
    mysqli_close($link);
?>

Error: No database selected
数据库连接成功,但操作数据库失败
给php指定连接的mysql端口

$link = mysqli_connect('localhost:3308','root');

在这里插入图片描述
连接并操作数据库成功!!
(2)[天龙八部]
连接数据库操作:
1)连接数据库;
2)判断是否连接成功;
3)设置字符集;
4)准备数据库;
5)准备SQL语句;
6)发送SQL语句;
7)处理结果集;
8)关闭数据库(释放资源)
$result = mysqli_query( $link, $sql); //返回一个对象
mysqli_fetch_assoc( $result); //一个一个往下读,返回的是一个一维的关联数组(必须要记住)
mysqli_fetch_row(返回一个索引数组)
mysqli_fetch_array( $result) //返回一个有索引又有关联的数组
mysqli_num_rows( $result) //返回查询时候的结果集的总条数
mysqli_affected_rows( $link) //返回查询、修改、添加、删除时受影响的行数
mysqli_insert_id( $link) //返回的是插入的当前的数据自增的id

  //7.处理结果集
     while ($rows = mysqli_fetch_assoc($res)){
        var_dump($rows);
     }
     $rows = mysqli_fetch_row($res);
     var_dump($rows);
     $rows = mysqli_fetch_array($res);
     var_dump($rows);
     $num = mysqli_num_rows($res);
     var_dump($num);   //D:\wamp64\www\1.php:29:int 2
     $rows = mysqli_affected_rows($link);   //D:\wamp64\www\1.php:31:int 2
     var_dump($rows);
     $rows = mysqli_insert_id($link);   //返回插入数据的id值
     var_dump($rows);

(2)实战:通过网页修改/删除数据库
1.php

<?php
    //连接数据库
    $link = mysqli_connect('localhost:3308','root');
    //判断数据库是否连接成功
    if (!$link){
        echo '连接数据库失败!';
    }
    //改变数据库的编码方式
    mysqli_set_charset($link,'utf8');
    //选择数据库
    mysqli_select_db($link,'e_market');
    //选择SQL语句
    $sql = "select *from aaa";
    //执行sql语句
    $res = mysqli_query($link,$sql);
    //处理结果集
    echo '<table cellpadding=20 cellspacing=0 border="1">';
        echo '<tr >';
            echo '<th>id</th><th>name</th><th>age</th><th>manufacture</th>';
        echo '</tr>';
        while ($rows = mysqli_fetch_assoc($res)){
            echo '<tr>';
                echo '<td>'.$rows['id'].'</td><td>'.$rows['name'].'</td><td>'.$rows['age'].'</td>
                <td>'.'<a href="update.php?id='.$rows['id'].'">修改</a>/<a href="delete.php?id='.$rows['id'].'">删除</a>'.'</td>';
            echo '</tr>';
        }
        //while ($rows = mysqli_fetch_assoc($res)){
        //}
    echo '</table>';
    //$rows = mysqli_fetch_assoc($res);
    //var_dump($rows);
    //关闭数据库释放资源
    mysqli_close($link);
?>

delete.php

<?php
    $id = $_GET['id'];
    $link = mysqli_connect('localhost:3308','root');
    if (!$link){
        echo '数据库连接失败!';
    }
    mysqli_set_charset($link,'utf8');
    mysqli_select_db($link,'e_market');
    $sql = "delete from aaa where id= $id";
    $res = mysqli_query($link,$sql);
    if ($res && mysqli_affected_rows( $link)){
        echo '删除成功!<a href="1.php">返回</a>';
    }else{
        echo '删除失败';
    }
?>

update.php

<?php
    echo '这是修改操作';
    $id = $_GET['id'];
    $link = mysqli_connect('localhost:3308','root');
    if (!$link){
        echo '数据库连接失败';
    }
    mysqli_set_charset($link,'utf8');
    mysqli_select_db($link,'e_market');
    $sql = "select *from aaa";
    $res = mysqli_query($link,$sql);
    $rows = mysqli_fetch_assoc($res);
?>
<html>
    <body>
        <form action="data_update.php">
            <input type="hidden" value="<?php echo $id; ?>" name="id" />
            姓名:<input type="text" value="<?php echo $rows['name'];?>" name="name" /><br />
            年龄:<input type="text" value="<?php echo $rows['age'];?>" name="age" /><br />
            <input type="submit" value="执行修改">
        </form>
    </body>
</html>

data_update.php

<?php
    var_dump($_GET);
    $name = $_GET['name'];
    $age = $_GET['age'];
    $id = $_GET['id'];
    $link = mysqli_connect('localhost:3308','root');
    if (!$link){
        echo '数据库连接失败';
    }
    mysqli_set_charset($link,'utf8');
    mysqli_select_db($link,'e_market');
    $sql = "update aaa set name='$name',age='$age' where id=$id";
    $res = mysqli_query($link,$sql);
    mysqli_close($link);
?>

在这里插入图片描述

2.会话控制

(1)cookie:
1)设置有效时间为60秒

<?php
     setcookie('name','wangwu',time()+60,'/');   //设置cookie,有效时间为60秒
     var_dump($_COOKIE);
?>

2)销毁cookie:

<?php
     setcookie('name','',time()-1,'/');   //销毁cookie
     var_dump($_COOKIE);
?>

3)将登录信息存入cookie
login.php

<html>
    <head></head>
    <body>
        <form action="dologin.php" method="get">
            用户名:<input type="text" value='' name="username" /><br />
            密码:<input type="password" value='' name="password" /><br />
            <input type="submit" value="登录" />
        </form>
    </body>
</html>

dologin.php(设置cookie,将信息存入cookie)

<?php
     $username = '张三';
     $password = '123456';
     if ($username == $_GET['username'] && $password == $_GET['password']){
        setcookie('username',$username,time()+60*60,'/');
        echo '登录成功';
     }else{
        echo '登录失败';
     }
?>

cookie.php

<?php
     if ($_COOKIE['username'] == '张三'){
        echo '你是张三';
     }else{
        echo '你不是张三';
     }
?>

loginout.php

<?php
    setcookie('username','',time()-1,'/');
?>

(2)session
1)要使用session,必须要开启session_start();

<?php
   session_start();  //想用session,必须开启
   $_SESSION['username'] = 'zhangsan';
   $_SESSION['password'] = 123456;
   unset($_SESSION['username']);   //销毁username
   session_destroy();
   var_dump($_SESSION);
?>

2)登录,信息存入session
login.php

<html>
    <head></head>
    <body>
        <form action="3.php">
            用户名:<input type="text" value="" name="username" /><br />
            密码:<input type="password" value="" name='password' /><br />
            <input type="submit" value="登录" />
        </form>
    </body>
</html>

dologin.php

<?php
     $username = '小明';
     $password = 123456;
     session_start();
     if ($username = $_GET['username'] && $password = $_GET['password']){
        $_SESSION['username'] = $username;
        $_SESSION['password'] = $password;
        echo '登录成功';
     }else{
        echo '登录失败';
     }
?>

session.php

<?php
     session_start();
     echo $_SESSION['username'];
     if (empty($_SESSION['username'])){
        echo '您没有登录';
     }else{
        echo '欢迎您,'.$_SESSION['username'];
     }
?>

loginout.php

<?php
     session_start();
     unset($_SESSION['username']);
     session_destroy();
?>

3.文件操作

(1)文件操作(一)
1)readfile(‘a.txt’); //把文件的内容直接输出到浏览器上面去
2)var_dump(‘1.txt’); //返回的是一个数组

    var_dump(file('1.txt'));
    //D:\wamp64\www\2.php:3:
    //array (size=1)
    //0 => string 'aaasfsdf' (length=8)

3)file_get_contents(‘1.txt’); //返回字符串,原样输出

    $str = file_get_contents('1.txt');
    var_dump($str);
    //D:\wamp64\www\2.php:3:string 'aaasfsdf' (length=8)

4)file_put_contents(‘1.txt’,‘这是我新建的文件’);
//将文件原来的内容清空,覆盖原来的内容;如果没有文件,会创建一个文件,并把内容写进去

file_put_contents('1.txt','这是我新建的文件');

(2)文件操作(二)

<?php
    $fp = fopen('1.txt','w+');
    $str = '今天天气降温,记得多穿点衣服';
    fwrite($fp,$str);
    fseek($fp,0);
    echo fread($fp,1024);
    fclose($fp);
?>

pathinfo(‘1.txt’);

<?php
    var_dump(pathinfo('1.txt'));
    //D:\wamp64\www\2.php:2:
    //array (size=4)
  //'dirname' => string '.' (length=1)
  //'basename' => string '1.txt' (length=5)
  //'extension' => string 'txt' (length=3)
  //'filename' => string '1' (length=1)
?>

basename(‘1.txt’); //获取文件名

<?php
    var_dump(basename('1.txt'));
    //D:\wamp64\www\2.php:2:string '1.txt' (length=5)
?>

dirname(‘1.txt’); //获取当前文件所在的文件夹

<?php
    var_dump(dirname('1.txt'));
    //D:\wamp64\www\2.php:2:string '.' (length=1)
?>

http_build_query($arr); //将数组变成url参数

<?php
    $arr = [
    'username' => 'zhangsan',
    'password' =>123456
    ];
    var_dump(http_build_query($arr));
    //D:\wamp64\www\2.php:6:string 'username=zhangsan&password=123456' (length=33)
?>

parse_url($url);//用来解析url

<?php
    $url = 'https://www.bilibili.com/video/BV1QE411J7hg?p=4';
    var_dump(parse_url($url));  //解析url
    //D:\wamp64\www\2.php:3:
    //array (size=4)
    //'scheme' => string 'https' (length=5)
    //'host' => string 'www.bilibili.com' (length=16)
    //'path' => string '/video/BV1QE411J7hg' (length=19)
    //'query' => string 'p=4' (length=3)
?>

parse_str($str); //将字符串解析成多个变量

<?php
    parse_str('username=zhangsan&password=123456');  //将字符串解析成多个变量
    echo $username."\t".$password;
    //zhangsan 123456
?>

file_exists(); //判断文件是否存在
is_file(); //判断是否为文件
is_dir(); //判断是否为文件夹
is_readable(); //判断是否可读
is_writeable(); //判断是否可写
is_executable(); //是否可执行
chmod(); //0777 改变权限 r w x
(3)文件操作(三)
mkdir(‘test’); //创建文件夹
mkdir(‘test/a/b’,0777,true); //true表示递归创建
rmdir(‘aaa’); //删除文件夹

<?php
    $dir = opendir('test');
    echo readdir($dir).'<br />';
    echo readdir($dir).'<br />';
    /*
    .
    ..
    */
?>

unlink(‘1.txt’); //删除文件
copy(‘1.php’,‘111.php’); //拷贝文件
rename(‘1.txt’,‘ab.php’); //重命名

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值