主要内容:
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’); //重命名