欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php的基础与mysql的连接

程序员文章站 2022-05-17 19:10:30
...

一、php的简介

1、php必须运行在服务器环境下

2、服务器的组成:
环境:apache
数据库:mysql
代码:html+css+js,php

3、功能:
前端被互联网用户请求,在前端页面发送数据
php接收,过滤
存取数据库
php进行判断,验证,处理
php返回,发送
前端接收

4、php代码放在:php文件中
php文件必须在服务器运行

5、
php编程语言,服务器编程语言(后台语言)
php与js最大的区别,工作环境
浏览器没有解析php文件的功能,php文件被服务器执行之后,显示在浏览器

二、mysql

1、
mysql:数据库管理系统,管理关系型数据库
数据库中,以表格的形式存在,表格中,行和列表示:
行:数据,记录
列:字段,数据于域

2、数据库没有高效的管理方式,mysql用来管理数据库,是mysql也没有可视化界面,于是,各种第三方工具出现了。他们提供可视化管理界面,快速操作数据库

3、mysql的操作命令
增: INSERT stu (name,tel,cj) VALUES(‘admin’,‘1232132’,34.5);
改:PDATE stu SET cj=67.5 WHERE id=1
查:SELECT name,tel,cj FROM stu;
删:LETE FROM stu WHERE id=3;

三、php的语法

1、
php的基础与mysql的连接
2、
浏览器不能解析php,php在服务器被解析,返回数据,服务器只能返回字符型数据,所有在php中,返回的所有数据类型,都被转成字符。

3、

1.注释,支持#号
2.变量,必须以$开头
	$name = "admin";
3.字符串拼接为:.
	echo "hello ".$name;
4.对象访问属性为:->
5.php没有打印语句,只有返回语句
    6.在php中每行代码结束必须加分号
7.php的数据类型:字符,整型,浮点型,布尔,NULL,对象,数组,资源型

4、

echo true//这里输出1
echo false;//这里什么都不输出

5、索引数组

php不能直接返回数组,要用json

$arr = array(23,56,"hello");
     echo $arr[0];
     echo $arr[1];
     echo $arr[2];
     echo "<br>";
     //输出数组长度 他不能用length
     echo count($arr);
     echo "<br>";
     //上述的代码等同于下面的 数组遍历
    for($i=0;$i<count($arr);$i++){
         echo $arr[$i];
         echo "<br>";
     }

将自己的数组或对象转为json
echo json_encode ($arr);

索引数组被转成,类似于js数组的字符
关联数组被转成,类似于js对象的字符
两相结合,可以转成类似于js数组里放对象的字符 √

6、关联数组

$arr1 = array("name"=>"admin","age"=>17);
$arr2 = array("name"=>"root","age"=>18);
//echo $arr; 报错
//print $arr; 报错
print_r($arr);      //用来查看或测试
//结果:Array ([0]=>23[1]=>56[2]=>hello)
$arr = array($arr1,$arr2);
echo json_encode($arr);
//结果:[{"name":"admin","age":17},{"name":"root","age",18}]

7、对象

class Obj{
     //这里的var 用作对象的属性的声明
     var $name = "admin";
     function show(){
         echo "hello ".$this->name;
     }
 }
 $o = new Obj();
 echo $o->name; //admin
 echo $o->show(); //hello admin
 echo json_encode($o); //{"name","admin"} 因为json没有function 所以没有被转过来

8、form表单完成前端收发和后台的收发

前台代码

<form action="test3.php" method="get">
        用户名:<input type="text" name="user"><br>
        密码:<input type="text" name="pass"><br>
        <input type="submit">
</form>

后台php代码

$u = @$_REQUEST["user"];
$p = @$_REQUEST["pass"];

$user = "admin123";
$pass = "987654";

if($u === $user && $p === $pass){
     echo "ok";
}else{
     echo "no";
}

// echo $u."----".$p;

9、如何检测写的php代码

将.php文件放入WWW文件夹中,然后在浏览器中写入地址  local/testwjj/test.php

10、使用php登录mysql

// 1.登录mysql,链接mysql,选择数据库
$link = @new mysqli("localhost:3306","root","root","test1910");
if($link->connect_error){
     echo $link->connect_error;
}

// 2.向mysql发送命令,根据命令执行不同的功能
// $link->query("mysql命令");

// 增
// $str = "INSERT stu (name,tel,cj) VALUES('李四','345',78.5)";
// $q = $link->query($str);
// if($q){
//     echo "insert success";
// }else{
//     echo "insert error";
// }

// 改
// $str = "UPDATE stu SET name='王二' WHERE id=5";
 // $q = $link->query($str);
 // if($q){
 //     echo "update success";
 // }else{
 //     echo "update error";
 // }

// 删
// $str = "DELETE FROM stu WHERE id=6";
// $q = $link->query($str);
// if($q){
//     echo "delete success";
// }else{
//     echo "delete error";
// }

// 查:资源型数据
str = "SELECT * FROM stu";
$q = $link->query($str);
if($q){
   echo $q;
   // 数据解析之后,才能看到,或操作,怎么解析?
   // 每个fetch方法都是:每次执行只能拿到一条信息 所以要用死循环判断
   while(true){
       $arr = $q->fetch_array();
       //这个是索引+关联数组的组合
       print_r($arr);
       echo "<br>";
       if(!$arr){
       break;
       }
    }
    
    //索引数组+关联数组
    while($arr = $q->fetch_array()){
       print_r($arr);
       echo "<br>";
    }
    
    // 索引数组 返回1、2、3、4
    while($arr = $q->fetch_row()){
       print_r($arr);
       echo "<br>";
    }
    
    // 关联数组√ 返回属性名
    while($arr = $q->fetch_assoc()){
       // print_r($arr);
        // echo $arr["cj"];
        echo json_encode($arr);
        echo "<br>";
     }
     // 对象
     // while($arr = $q->fetch_object()){
     //     print_r($arr);
     //     echo "<br>";
     // }
}else{
    echo "select error";
}

11、资源型数据如何解析
详情见上方的select

每个fetch方法都是:每次执行只能拿一条信息,所以要用死循环判断