PHP开发常用工具

Navicat:可视化操作数据库,更方便进行数据库操作
Dreamweaver:前端页面设计,可以实现实时展现相关代码样式
phpStudy:PHP搭建环境,可以以localhost访问,是php学习的必备工具
phpStorm:php开发IDE,进行PHP代码审计的时候,可以作为调试的很好的工具

PHP入门语法(mysql连接)

PHP代码必须包含在<?php ?>
PHP使用mysql_connect()来连接数据库,有三个参数,分别是servername,username,password,比如$con = mysql_connect(servername, username,password)
mysql_query()用来向数据库发送数据查询命令,例如mysql_query(select * from mysql, $con)

关于mysql数据库的几种基本php语法

1.增:
a.创建库 CREATE DATABASES database_name
b.创建表 CREATE TABLE table_name(column_name1 data_type,column_name2 data_type,…)
c.插入数据 INSERT INTO table_name VALUES(value1,value2,…)
2.删:DELETE FROM table_name WHERE column_name=value
3.查:SELECT column FROM table_name WHERE column operator value
4.改:UPDATE table_name SET column_name=WHERE column_name=value

如下图示例所示

image-20240520203700512

部分实现代码

<?php
$servername = "localhost";
$username = "root"; // 你的数据库用户名
$password = "root"; // 你的数据库密码
$dbname = "myblog"; // 你的数据库名

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}

$sql = "SELECT content FROM article"; // 检索所有文章
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "<p class='paragraph'>" . $row["content"] . "</p>";
}
} else {
echo "没有找到文章内容";
}
$conn->close();
?>

由于每次都要执行数据库配置,所以我们可以把这部分代码写成一个配置文件,然后用文件包含进行引用,例如include("/test/coon.php")进行一个简单的引用,如果这部分参数可控,那么就可以实现文件包含的利用

PHP变量提交

变量提交一共有三种方式,分别是get传参,post传参,request传参,由于get和post非常基础,这里只讲request传参

request封装了get、post、file、cookie四种传参方式,那么为什么要设计request传参方式呢?其实是为了简化后端程序设计,因为无论是哪种方式传递的数据,都是传递数据给web应用,他们的目的是一样的,所以我们可以用request涵盖所有

因为传递进来的参数是我们可控的,如果不对相关的参数进行过滤处理,就容易造成sql注入,这也是sql注入的原理

image-20240520205741049

例如,对于本例,当我们对传进来的id写成1 union select name from admin这时就能外带出很多数据库内的其他信息

PHP单引号和双引号区别

通常刚刚接触到php的新手都会认为单引号和双引号是没有区别的,但其实区别还是蛮大的

用一句话来解释,单引号不解析变量,双引号解析变量,有变量就用单引号,如下图示例所示

<?php
$a = 'hello';
$str1 = "$a world"; //使用双引号
$str2 = '$a world'; //使用单引号
echo ($str1);
echo("\n");
echo ($str2);

image-20240520214031829