PHP基本语法
相比其他编程语言,PHP比较特殊的是:PHP一般不独立使用,会和HTML、JavaScript等语言混合,生成最终的HTML文本供浏览器渲染。
PHP 脚本可以放在文档中的任何位置,以 <?php 开始,以 ?> 结束。
PHP变量以 $ 符号开始,变量无需声明。
PHP中字符串拼接使用并置运算符“.”,如:$txt = "aa" . $bb . "cc"。
PHP数组用array()函数创建。
PHP中的数组、条件语句(if、else、switch等)、循环语句(for、while等)、函数等规则与C语言系列基本类似。
PHP可以面向对象编程,类、对象、接口等概念与Java中的类似(PHP有接口的概念)。
PHP表单
表单操作是Web应用中最常见的需求。
通过$_GET和$_POST数组,可以收集来自 method="get" 和 method="post"的表单中的值。
$_SERVER["PHP_SELF"]:超级全局变量,返回当前正在执行脚本的文件名。
htmlspecialchars() 函数:把一些预定义的字符转换为 HTML 实体。
PHP数据库
数据库操作是Web后端的基本技能。PHP中连接MySQL一般使用MySQLi extension 或 PDO (PHP Data Objects)。
此处以MySQLi面向对象的写法为例:
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
//数据库操作: $sql为字符串变量,按MySQL规则写入操作语句即可。
//多条SQL语句: 使用multi_query替代query。
if ($conn->query($sql) === TRUE) {
echo "数据操作成功";
}
// 数据库查询结果返回可用如下方法获取,$result是查询结果数组,每个元素是一行,每行含有查询的字段值。
$result = $conn->query($sql)
// 关闭连接
$conn->close();
可以使用预处理语句,防止 MySQL 注入。以下例子摘自菜鸟教程:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 预处理及绑定
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
// 设置参数并执行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();
$stmt->close();
$conn->close();
?>
PHP进阶用法
待完善