《php常用开发模块》
在PHP项目开发中,常常会遇到一些通用的需求场景。为了提高开发效率、增强代码的可维护性并确保系统的稳定性,使用一些常用的开发模块是很好的解决方案。这些模块能够快速搭建起项目的框架结构,提供诸如数据库交互、用户认证等基础功能。
一、数据库操作模块
(一)PDO方式连接与查询
php
setAttribute(PDO::ATTR<em>ERRMODE, PDO::ERRMODE</em>EXCEPTION);
} catch(PDOException $e) {
echo "连接失败:".$e->getMessage();
}</p>
<p>// 执行查询语句
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$id = 1;
$stmt->bindParam(':id', $id);
$stmt->execute();</p>
<p>// 获取结果集
$result = $stmt->fetchAll(PDO::FETCH<em>ASSOC);
print</em>r($result);
?>
```
这是比较常见的一种数据库操作方式,PDO提供了预处理语句等功能,可以有效防止SQL注入。</p>
<h3>(二)MySQLi方式</h3>
<p>```php
<?php
// 创建连接
$mysqli = new mysqli("localhost", "root", "password", "test");</p>
<p>// 检测连接
if ($mysqli->connect<em>error) {
die("连接失败: " . $mysqli->connect</em>error);
}</p>
<p>$sql = "SELECT id, name FROM users";
$result = $mysqli->query($sql);</p>
<p>if ($result->num<em>rows > 0) {
// 输出数据
while($row = $result->fetch</em>assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
$mysqli->close();
?>
二、用户认证模块
(一)基于session的简单认证
```php
<?php
sessionstart();
// 登录逻辑
if(isset($POST['login'])){
$username = $POST['username'];
$password = $POST['password'];
// 假设从数据库获取到正确的用户名和密码进行验证(这里只是简单示例)
if($username == 'admin' && $password == '123456'){
$_SESSION['user'] = $username;
header('Location:dashboard.php');
}else{
echo '用户名或密码错误';
}
}
// 在受保护页面判断是否登录
if(!isset($_SESSION['user'])){
header('Location:login.php');
}
?>
```
这种思路利用了PHP的session机制来保存用户的登录状态,在需要用户登录后才能访问的页面进行状态检查。
(二)JWT(JSON Web Token)认证
安装jwt相关的库,如firebase/php - jwt。然后创建token:
```php
<?php
require_once 'vendor/autoload.php';
use FirebaseJWTJWT;
$key = "example_key";
$payload = array(
"iss" => "http://example.org",
"aud" => "http://example.net",
"iat" => 1356999524,
"nbf" => 1357000000
);
/**
* IMPORTANT:
* You must specify supported algorithms for your application. See
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
* for a list of spec-compliant algorithms.
*/
$jwt = JWT::encode($payload, $key);
echo "JWT: ".$jwt."n";
$decoded = JWT::decode($jwt, $key, array('HS256'));
print_r($decoded);
?>
```
在API接口调用时,将token放入请求头,服务器端解析token来验证用户身份。
以上就是一些PHP常用开发模块的内容,根据实际项目需求可以选择合适的模块构建应用。