<?php
header(“Content-Type:text/html;charset:utf-8”);
/*
文件包含
向上包含 、 向下包含
include 生成一个警告,错误发生后脚本继续执行
include_once 系统检测文件包含过程中是否已经包含过(一个文件只能包含一次)
Require 生成致命错误,错误发生后脚本停止执行
Require_once 一个文件包含一次
/
// 先包含文件,再使用文件的内容(向上包含)
// include “phpinfo.php”; // 包含 phpinfo.php 文件
// echo “$name
“;
// echo “$age
“;
// 先准备内容,然后包含另外的文件,在另外的文件中使用当前的内容(向下包含)
// $sex = “男”;
// $height = 175;
// include “phpinfo.php”; // 向下包含 phpinfo.php 文件
// include 和 include_once
/*
include 系统遇到一次,就会执行一次
如果同一个文件多次加载,系统会多次执行
/
// include “phpinfo.php”; //24
// include “phpinfo.php”; //24
// include “phpinfo.php”; //24 系统会执行三次
include_once “phpinfo.php”; // 系统只会输出一次
include_once “phpinfo.php”;
include_once “phpinfo.php”;
// Require 和 include 区别
// 本质上都是包含文件,唯一区别是:包含未有文件时报错形式不一样
// include 错误级别低,不会阻止代码执行,而Require会阻止代码执行
// Require “phpinfo1.php”;
// echo “bnbcb”; //会报错,代码不会执行,因为是 Require包含的未有文件
// include “phpinfo1.php”;
// echo “dhshjcf”; // 会报错,但是代码依旧会执行,因为是 include包含的未有文件
/*
文件包含路径:绝对路径 、 相对路径
绝对路径 : 磁盘根目录(本地绝对路径)
Windows C:/路径/php文件
Linux /路径/php文件
网站根目录开始(网络绝对路径) /: 相对于网站主机名字对应的路径
Localhost/index.php E:/server/apache/htdocs/index.php
相对路径 : ./ 在当前文件夹 ../ 上级目录(当前文件夹的上一级文件夹)
*/
//操作php文件常见的错误 : 编辑错误文件 被垃圾数据填满硬盘 意外删除文件
// readfile() 读取文件并将它写入输出缓存
// 读取“123.txt”文件并写入输出流(读取成功返回字节数)
echo readfile(“123.txt”); // 60 统计目录下,直接写文件名
echo “
“;
// fopen() 打开文件 参数1 :文件名 参数2 :文件打开方式
// fread() 读取文件 参数1 :文件名 参数2 :规定待读取的最大字节数
// fclose() 关闭文件 参数 :待关闭的文件名称(或 存有文件名的变量)
$file1 = fopen(“123.txt”,”r”) or die(“Unable to open this file .”);
echo fread($file1,filesize(“123.txt”));
echo “
“;
fclose($file1);
echo “
“;
/*
文件打开模式 打开/读取/关闭
r 只读,文件指针在文件的开头开始
w 只写,删除文件内容或创建新文件,如果不存在,文件指针在文件开头开始
a 只写,文件的现有内容会被保留,文件指针在文件结尾开始 ,如果文件不存在,创建新文件
x 创建文件只写,如果文件存在,返回false
r+ 读/写 文件指针文件开头开始
w+ 读/写 删除内容或创建新文件,如果不存在,文件指针在文件开头开始
a+ 读/写 文件已有数据会被保留,文件指针在文件结尾开始,如果不存在,创建新文件
x+ 读/写 创建新文件 读/写 如果文件存在,返回false
*/
// 读取单行文件 fgets(), 当调用fgets()函数之后,文件指针会移动到下一行
$file1 = fopen(“123.txt”,”r”) or die(“Unable to open this file .”);
echo fgets($file1),”
“; // 输出第一行,指针下移
echo fgets($file1),”
“; // 输出第二行,指针下移
echo fgets($file1),”
“; // 输出第三行,指针下移
fclose($file1); // 关闭文件
echo “
“;
// feof() 函数检查是否已达到”End of File(EOF)”
// feof() 对于遍历未知的长度数据很有用
$file1 = fopen(“123.txt”,”r”) or die(“Unable to open thiss file .”);
// 输出单行,直到 end of file
while(!feof($file1)){ // 检查文件是否达到末尾,若没有就一直到末尾
echo fgets($file1).”
“; // 逐行输出
}
fclose($file1);
echo “
“; // 关闭文件
/*
fgetc() 读取文件的单个字符
调用 fgetc() 函数后,文件指针会移动到下一个字符
/
$file1 = fopen(“123.txt”,”r”) or die(“Unable to open this file .”);
while(!feof($file1)){
echo fgetc($file1).” “; // 逐个输出字符
}
fclose($file1);
echo “
“;
/*
创建文件,若用fopen打开不存在的文件,就会创建文件 写入(w) 增加(a)
如果写不进去,说明没有向硬盘写入信息的 PHP文件访问权限
/
// 在当前目录下创建 test.txt 文件
$file1 = fopen(“test.txt”,”w”); //在当前目录下成功创建新文件
/*
fwrite() 写入文件,会覆盖原有的数据
参数1 : 文件名 参数2 : 被写的字符串
/
$txt1 = “我在学习PHP\n”;
fwrite($file1,$txt1); // 成功写入文件
$txt2 = “学习PHP MySql\n”;
fwrite($file1,$txt2); // 成功写入文件
fclose($file1); // 关闭文件
echo “
$file1 = fopen(“test.txt”,”w”) or die(“Unable to open this file .”); // 重新打开 test.txt 文件
$txt3 = “覆盖数据”;
fwrite($file1,$txt3); // 写入新数据,会覆盖原有的数据
fclose($file1);
/*
PHP连接 MySql 数据库
MySQLi extension (“i” improved)
PDO (PHP Data Objects)
MySQLi(面向对象) MySQLi(面向过程) PDO
/
// ★★★面向对象 连接数据库
$servername = “localhost”;
$username = “root”;
$password = “root”;
// $dbname = “myDB1”;
$dbname = “myPHP1”;
// $dbname = “myPHP2”;
// // 创建连接
// $conn = new mysqli($servername,$username,$password);
// // 检测连接
// if($conn->connect_error){
// die(“连接失败 : “ . $coon->connect_error); // 返回连接错误的信息
// }else{
// echo “连接成功
“;
// }
//关闭连接
// $conn->close();
// ★★★面向过程 连接数据库
// // 创建连接
// $conn = mysqli_connect($servername,$username,$password);
// // 检测连接
// if(!$conn){
// die(“连接失败 “ .mysqli_connect_error());
// }else{
// echo “连接成功”;
// }
// //关闭连接
// mysqli_close($conn);
// ★★★ PDO 连接数据库
// try{
// // 捕获异常
// $conn = new PDO(“mysql:host = $servername”,$username,$password); // 指定 MySQL 数据库
// echo “连接成功”;
// }
// catch(PDOException $e){ // PDOException 异常类
// // 处理异常
// echo $e->getMessage();
// }
// 关闭连接
// $conn = null;
/*
★★★ 面向对象
*/
//创建连接
// $conn = new mysqli($servername,$username,$password,$dbname);
// if($conn->connect_error){
// die(“连接失败 “ . $conn->connect_error);
// }else{
// echo “连接成功
“;
// }
/*
★★★面向对象 创建数据库
*/
// 创建数据库
// $sql = “create database myDB1”;
// if($conn->query($sql) === true){
// echo “数据库创建成功”;
// }else{
// echo “数据库创建失败”. $conn->error;
// }
// $conn->close();
//★★★面向对象 创建数据库表
// $sql = “create table oop(
// id int unsigned auto_increment primary key,
// name varchar(10) not null,
// email varchar(50)
// )”;
// if($conn->query($sql) === true){
// echo “成功创建表 oop”;
// }else{
// echo “创建表错误 “ . $conn->error;
// }
// 插入数据
// $sql1 = “insert into oop(name,email)values(‘ton’,’123@qq.com’);”;
// if($conn->query($sql1) === true){
// echo “插入数据成功
“;
// }else{
// echo “Error : “ . $sql . $conn->error;
// }
// 插入多条数据
// $sql0 = “insert into oop(name,email)values(‘111’,’111@qq.com’);”;
// $sql0 = “insert into oop(name,email)values(‘222’,’222@qq.com’);”;
// $sql0 = “insert into oop(name,email)values(‘333’,’333@qq.com’);”;
// $sql0 = “insert into oop(name,email)values(‘333’,’333@qq.com’),(‘111’,’111@qq.com’),(‘222’,’222@qq.com’);”;
// if($conn->multi_query($sql0) === true){
// echo “多条数据插入成功
“;
// }else{
// echo “Error : “ . $sql0. $conn->error;
// }
// // 读取数据
// $sql3 = “select * from oop;”;
// $result = $conn->query($sql3);
// if($result->num_rows > 0){ // num_rows 判断返回的数据
// // 输出数据
// while($row = $result->fetch_assoc()){
// // 多条结果,fetch_assoc()将结果放入关联数组并循环输出
// echo “id : “ . $row[“id”] . “ name : “.$row[“name”] . “  email : “ . $row[“email”] . “
“;
// }
// }else{
// echo “0 结果”;
// }
// $conn->close();
/*
★★★ 面向过程
*/
// 创建连接
$conn = mysqli_connect($servername,$username,$password,$dbname);
if(!$conn){
die(“连接失败 “ .mysqli_connect_error());
}else{
echo “连接成功
“;
}
/*
★★★ 面向过程 创建数据库
*/
// $sql = “create database myPHP1”;
// if(mysqli_query($conn,$sql)){
// echo “创建数据库成功”;
// }else{
// echo “创建失败”.mysqli_error($conn);
// }
// mysqli_close($conn);
//面向过程 创建数据库表
// $sql = “create table opp(
// id int unsigned auto_increment primary key,
// name varchar(10),
// email varchar(50)
// )”;
// if(mysqli_query($conn,$sql)){
// echo “数据库表opp创建成功”;
// }else{
// die(“创建表失败 “ . mysqli_error($conn));
// }
// 插入数据
// $sql2 = “insert into opp(name,email)values(‘john’,’456@qq.com’);”;
// if(mysqli_query($conn,$sql2)){
// echo “插入数据成功
“;
// }else{
// echo “Error : “ . $sql2 .mysqli_error($conn);
// }
// 插入多条数据
// $sql0 = “insert into opp(name,email)values(‘111’,’111@qq.com’);”;
// $sql0 = “insert into opp(name,email)values(‘222’,’222@qq.com’);”;
// $sql0 = “insert into opp(name,email)values(‘333’,’333@qq.com’);”;
// $sql0 = “insert into opp(name,email)values(‘111’,’111@qqq.com’),(‘222’,’222@qq.com’),(‘333’,’333@qq.com’);”;
// if(mysqli_multi_query($conn,$sql0)){
// echo “opp多条数据插入成功
“;
// }else{
// echo “Error : “ . $sql0. mysqli_error($conn);
// }
// 筛选某些数据
$result = mysqli_query($conn,”select * from opp where name = ‘333’;”);
while($row = mysqli_fetch_assoc($result)){
echo $row[“id”] .”  ” . $row[“name”] . “ ” . $row[“email”] . “
“;
}
// 修改某些数据
mysqli_query($conn,”update opp set name = ‘132456789’ where name = ‘111’;”);
// 删除某些数据
mysqli_query($conn,”delete from opp where name = ‘222’;”);
//读取数据
$sql3 = “select * from opp”;
$result = mysqli_query($conn,$sql3);
if(mysqli_num_rows($result) > 0){
// 输出数据
while($row = mysqli_fetch_assoc($result)){
echo “id : “ . $row[“id”] . “ name : “.$row[“name”] . “  email : “ . $row[“email”] . “
“;
}
}else{
echo “0 结果”;
}
// mysqli_close($conn);
/*
★★★ PDO
*/
// try{
// // //捕获异常 创建连接
// $conn = new PDO(“mysql:host = $servername;dbname=$dbname”,$username,$password); // 指定MySQL数据库
// echo “连接成功
“;
// // 设置PDO 错误模式为异常
// $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
// // 创建数据库
// $sql = “create database myPHP2”;
// $conn->exec($sql); // 使用exec() 因为没有结果返回
// echo “创建数据库成功”;
// // 创建数据库表
// $sql1 = “create table pdo1(
// id int unsigned auto_increment primary key,
// name varchar(10),
// email varchar(50)
// )”;
// $conn->exec($sql1); // 没有结果返回
// echo “创建数据库表成功
“;
// 插入数据
// $sql2 = “insert into pdo(name,email)values(‘ami’,’789@qq.com’);”;
// // 使用 exec() 没有结果返回
// $conn->exec($sql2);
// echo “插入数据成功
“;
// 多条数据插入成功
// $conn->beginTransaction(); // 开始事务
// $conn->exec(“insert into pdo(name,email)values(‘111’,’111@qq.com’);”);
// $conn->exec(“insert into pdo(name,email)values(‘222’,’222@qq.com’);”);
// $conn->exec(“insert into pdo(name,email)values(‘333’,’333@qq.com’);”);
// // 提交事务
// $conn->commit();
// echo “pdo 多条数据插入成功
“;
// prepare 预处理语句
// $stmt = $conn->prepare(“select * from pdo;”);
// // 执行一条预处理语句
// $stmt->execute();
// // fetch() 从结果中获取数据
// while($row = $stmt->fetch()){
// echo “id : “ . $row[“id”] . “ name : “.$row[“name”] . “  email : “ . $row[“email”] . “
“;
// }
// }
// catch(PDOException $e){
// $conn->rollback(); // 如果执行失败,回滚
// echo $sql . “
“ . $e->getMessage();
// }
// $conn = null;
?>
