PHP
PHP 后端的开发语言
在HBuilder中配置“运行”“设置web服务器”设置HTML类文件和PHP类文件为自己配置的“外置Web服务器配置”。
localhost 对应的是documentRoot那个路径(项目需要放置的位置),Apache中的httpd.conf和httpd-vhosts.conf文件。
PHP语法
使用语法:写在<?php ?>中,echo输出,var_dump($flag)另一种输出方式,类似于console.log()。
<?php
echo "aa";
echo "这是一段话";
echo "<p>这是一段话</p>";
//php里使用$来定义一个变量
//php单行注释
/*php多行注释*/
$str = <<<AAA
<h1>标题</h1>
<p>段落</p>
<p>段落</p>
AAA;
echo $str;
?>
PHP数据类型
1、布尔值(true TRUE var_dump())
2、整型(integer)
3、浮点型(float)
4、字符串(string)
5、数组(array)
6、对象(object)
<?php
$flag = true;
//echo $flag;
var_dump($flag);//console.log()
$num1 = 10;
$num2 = 10.1;
var_dump($num1,$num2);
$str = "abc";
$arr = [1,2,3];
var_dump($str,$arr);
class Person{
}
$person = new Person();
var_dump($person);
?>
PHP数组的创建方式
1、不带索引的数组(默认索引从0开始,依次增1)
$arr = [1,2,3];
var_dump($arr);
/*array (size=3)
0 => int 1
1 => int 2
2 => int 3*/
2、带索引的数组
$arr1 = ["name"=>"john","age"=>20];//key=>value
var_dump($arr1);
/*array (size=2)
'name' => string 'john' (length=4)
'age' => int 20*/
3、二维数组
$arr2 = [[1,2],[3,4]];
var_dump($arr2);
/*array (size=2)
0 =>
array (size=2)
0 => int 1
1 => int 2
1 =>
array (size=2)
0 => int 3
1 => int 4*/
4、使用变量创建数组compact()
$a = "aa";
$b = "bb";
$c = [1,2];
$arr3 = compact("a","b","c");
var_dump($arr3);
/*array (size=3)
'a' => string 'aa' (length=2)
'b' => string 'bb' (length=2)
'c' =>
array (size=2)
0 => int 1
1 => int 2*/
5、使用两个数组创建一个数组
// $a的值为key,$b的值为value
$a = [1,2,3];
$b = ["a","b","c"];
var_dump(array_combine($a,$b));
/*array (size=3)
1 => string 'a' (length=1)
2 => string 'b' (length=1)
3 => string 'c' (length=1)*/
6、建立指定范围单元的数组range(start,end,step)
var_dump(range(1,10,2));
/*array (size=5)
0 => int 1
1 => int 3
2 => int 5
3 => int 7
4 => int 9*/
数组方法
1、in_array 判断数组中是否包含某个值,返回布尔值
$arr = [12,3,4];
var_dump(in_array(3,$arr)); // boolean true
2、取得键名和键值 array_keys array_values
$arr = [12,3,4];
var_dump(array_keys($arr));
/*array (size=3)
0 => int 0
1 => int 1
2 => int 2*/
var_dump(array_values($arr));
/*array (size=3)
0 => int 12
1 => int 3
2 => int 4*/
3、移除数组中重复的值,返回去重之后的数组 array_unique
$arr = [1,1,1,1,2,3];
var_dump(array_unique($arr));
/*array (size=3)
0 => int 1
4 => int 2
5 => int 3*/
4、list( a , a, a,b) = $arr;把数组中的值赋给指定的变量
5、foreach($arr as $val) 遍历数组
$arr = [12,3,4];
foreach($arr as $val){
echo $val."<br>";
}
/*12
3
4*/
6、计算数组的长度 count
$arr = [12,3,4];
var_dump(count($arr));
//int 3
7、添加删除 array_push array_pop
$arr = [12,3,4];
array_push($arr,11);
var_dump($arr);
/*array (size=4)
0 => int 12
1 => int 3
2 => int 4
3 => int 11*/
8、统计数组中所有的值出现的次数array_count_values
$arr = [12,3,3,3,4];
var_dump(array_count_values($arr));
/*array (size=3)
12 => int 1
3 => int 3
4 => int 1*/
PHP和JSON之间的转换
1、isset判断一个变量是否定义
2、json_encode 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,
否则返回 FALSE。 json_encode($students,JSON_UNESCAPED_UNICODE)
$arr2 = [["name"=>"杨浩","age"=>20],["name"=>"杨浩","age"=>20]];//带索引的数组转换成json对象
$json = json_encode($arr2,JSON_UNESCAPED_UNICODE);
echo $json;
//[{"name":"杨浩","age":20},{"name":"杨浩","age":20}]
3、json_decode($val,true) 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。
True表示转换成数组,false转换成对象。
$arr3 = json_decode('{"name":"john"}',true);
var_dump($arr3);
/*array (size=1)
'name' => string 'john' (length=4)*/
MySQL
1、创建连接,conn.php文件
<?php
$servername = "localhost";
$username = "root";
$password = "";
//创建连接
$conn = new mysqli($servername,$username,$password);
//解决新版本乱码
mysqli_set_charset($conn,'utf8');
//检测连接
if($conn->connect_error){
die("连接失败:".$conn->connect_error);
}
echo "连接成功";
?>
2、创建数据表
<?php
include_once "conn.php";
$conn->select_db("database0907");
$sql = "create table product(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(30) NOT NULL,
price VARCHAR(30) NOT NULL,
srcimg VARCHAR(50),
reg_date CURRENT_TIMESTAMP
)";
if($conn->query($sql) === TRUE){
echo "创建表成功";
}else{
echo "创建表失败".$conn->error;
}
?>
3、插入数据
<?php
include_once "conn.php";
$conn->select_db("database0907");
$sql = "insert into product (id,title,price,srcimg)
values('1002','小米腕表','399元','../img/02.jpg'),
('1001','小米手机','1599元','../img/01.jpg')";
if($conn->query($sql) === TRUE){
echo "插入数据成功";
}else{
echo "插入数据失败".$conn->error;
}
?>
4、更新数据
<?php
include_once "conn.php";
$conn->select_db("database0907");
$sql = "update product set price = '1999元' where id = 1001 ";
if($conn->query($sql) === TRUE){
echo "更新数据成功";
}else{
echo "更新数据失败".$conn->error;
}
?>
5、删除数据
<?php
include_once "conn.php";
$conn->select_db("database0907");
$sql = "delete from product
where id = 1002";
if($conn->query($sql) === TRUE){
echo "删除数据成功";
}else{
echo "删除数据失败".$conn->error;
}
?>
解决MySQL中文乱码问题
打开MySQL的my.ini文件,
1、在
[client]
;password = your_password
port = 3306
socket = /tmp/mysql.sock位置下,添加如下代码
default-character-set=utf8
2、在
[mysqld]
port = 3306位置下,添加如下代码
character-set-server=utf8