# php公用方法庫
---
* 1,所有示例通用方法。
* 2,避免示例中,出現重復的方法。
* 3,方法每次會更新,大家拷貝存儲到一個文件里就行了。
* 4,方法庫文件,只演示實現功能。安全,擴展功能不演示。
>引入方法庫文件:
```php
require 'function.php';
```
```php
// 以下代碼存儲到一個文件里,文件名:function.php
/**
* 數據庫連接
* @param $db
* @return PDO
*/
function connect(){
$db = array(
'charset' => 'utf8',
'port' => 3306,
'type' => 'mysql',
'host' => '127.0.0.1',
'user' => 'root',
'pass' => 'root',
'name' => 'ouyangke'
);
$dsn = "{$db['type']}:host={$db['host']}; dbname={$db['name']}; charset={$db['charset']}; port={$db['port']}";//數據源
try {
//實例化PDO類,創建PDO對象
$pdo = new PDO($dsn,$db['user'],$db['pass']);
} catch (PDOException $e) {
die('數據庫錯誤:'.$e->getMessage());
}
return $pdo;
}
/**
* 查詢多條記錄
* @param $db
* @param $table
* @param $fields
* @param string $where
* @return array
*/
function select($table,$fields, $where='', $order='',$limit=''){
//連接pdo
$pdo = connect();
//創建SQL語句
$sql = 'SELECT ';
if (is_array($fields)) {
foreach ($fields as $field) {
$sql .= $field.', ';
}
} else {
$sql .= $fields;
}
$sql = rtrim(trim($sql),',');
$sql .= ' FROM '.$table;
//查詢條件
if(!empty($where)){
$sql .= ' WHERE '.$where;
}
//排序條件
if(!empty($order)) {
$sql .= ' order by '.$order;
}
//分頁條件
if(!empty($limit)) {
$sql .= ' limit '.$limit;
}
$sql .= ';';
//創建PDO預處理對象
$stmt = $pdo->prepare($sql);
//執行查詢操作
if($stmt->execute()){
if($stmt->rowCount()>0){
$stmt->setFetchMode(PDO::FETCH_ASSOC);
//返回一個二維數組
return $stmt->fetchAll();
}
} else {
return false;
}
}
/**
* 查詢單條記錄
* @param $db
* @param $table 表名
* @param $fields 返回值 *
* @param string $where 條件
* @return array
*/
function find($table,$fields,$where=''){
//連接pdo
$pdo = connect();
//創建SQL語句
$sql = 'SELECT ';
if (is_array($fields)) {
foreach ($fields as $field) {
$sql .= $field.', ';
}
} else {
$sql .= $fields;
}
$sql = rtrim(trim($sql),',');
$sql .= ' FROM '.$table;
//查詢條件
if(!empty($where)){
$sql .= ' WHERE '.$where;
}
$sql .= ' LIMIT 1;';
//創建PDO預處理對象
$stmt = $pdo->prepare($sql);
//執行查詢操作
if($stmt->execute()){
if($stmt->rowCount()>0){
$stmt->setFetchMode(PDO::FETCH_ASSOC);
return $stmt->fetch();
}
} else {
return false;
}
}
/**
* 新增數據
* @param $db
* @param $table
* @param $data
* @return bool
*/
function insert($table,$data=[]){
//連接pdo
$pdo = connect();
//創建SQL語句
$sql = "INSERT INTO {$table} SET ";
//組裝插入語句
if(is_array($data)){
foreach ($data as $k=>$v) {
$sql .= $k.'="'.$v.'", ';
}
}else{
return false;
}
//去掉尾部逗號,并添加分號結束
$sql = rtrim(trim($sql),',').';';
//創建PDO預處理對象
$stmt = $pdo->prepare($sql);
//執行新增操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return true;
}
} else {
return false;
}
}
/**
* 更新數據
* @param $db
* @param $table
* @param $data
* @return bool
*/
function update($table,$data=[], $where='') {
//連接pdo
$pdo = connect();
//創建SQL語句
$sql = "UPDATE {$table} SET ";
//組裝修改語句
if(is_array($data)){
foreach ($data as $k=>$v) {
$sql .= $k.'="'.$v.'", ';
}
}
//去掉尾部逗號,并添加分號結束
$sql = rtrim(trim($sql),',');
//查詢條件
if(!empty($where)){
$sql .= ' WHERE '.$where;
}
//創建PDO預處理對象
$stmt = $pdo->prepare($sql);
//執行新增操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return true;
}
} else {
return false;
}
}
/**
* 刪除記錄
* @param $db
* @param $table
* @param string $where
* @return bool
*/
function delete($table,$where=''){
//連接pdo
$pdo = connect();
//創建SQL語句
$sql = "DELETE FROM {$table} ";
//查詢條件
if(!empty($where)){
$sql .= ' WHERE '.$where;
}
//創建PDO預處理對象
$stmt = $pdo->prepare($sql);
//執行刪除操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return true;
}
} else {
return false;
}
}
/**
* 統計數量
* @param $pdo
* @param $table
* @param string $where
* @return number
*/
function count_num($table,$where){
//連接pdo
$pdo = connect();
//創建SQL語句
$sql = 'SELECT count(*) as count_number FROM '.$table;
//查詢條件
if(!empty($where)){
$sql .= ' WHERE '.$where;
}
//創建PDO預處理對象
$stmt = $pdo->prepare($sql);
//執行查詢操作
if($stmt->execute()){
if($stmt->rowCount()>0){
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$rows = $row['count_number'];
return $rows;
}
} else {
return false;
}
}
// json數據格式整理
function return_json($code,$data=array()){
if($code == 0){
$array = array(
'code' => 0,
'msg' => 'success',
'data' => $data
);
}else{
$array = array(
'code' => $code,
'msg' => $data
);
}
echo json_encode($array);
exit;
}
/**
* 請求接口返回內容
* @param string $url [請求的URL地址]
* @param string $params [請求的參數]
* @param int $ipost [是否采用POST形式]
* @return string
*/
function curl_data($url, $params = false, $ispost = 0){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // 默認值,讓 cURL 自己判斷使用哪個版本。 (強制使用 HTTP/1.1)。
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // 在嘗試連接時等待的秒數。設置為0,則無限等待。
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 設置超時限制防止死循環
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 要求結果保存到字符串中還是輸出到屏幕上
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 爬取重定向頁面
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);// 對認證證書來源的檢查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);// 從證書中檢查SSL加密算法是否存在
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true); // 發送一個常規的Post請求
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); // Post提交的數據包
curl_setopt($ch, CURLOPT_URL, $url); // 設置URL
} else {
// GET請求,組裝url
if ($params) {
curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$response = curl_exec($ch); // 運行cURL,請求URL,把結果復制給變量
curl_close($ch); // 關閉curl連接
return $response;
}
```
- 序言
- PHP基礎
- 認識PHP
- 環境安裝
- PHP語法
- 流程控制
- PHP數組
- PHP函數
- PHP類與對象
- PHP命名空間
- PHP7新特性
- PHP方法庫
- PHP交互
- 前后端交互
- 項目常規開發流程
- MySQL數據庫
- 會話控制
- Ajax分頁技術
- 細說函數
- 類與對象
- 對象進階
- 類與對象進階
- OOP面向對象
- 設計模式
- 路由與模板引擎
- 異常類
- PHP爬蟲
- PHP抓取函數
- PHP匹配函數
- 正則表達式
- PHP字符串函數
- 抓取實戰
- PHP接口
- 了解接口
- PHP插件
- PHPSpreadsheet
- ThinkPHP6
- 安裝
- 架構
- 數據庫
- 數據庫操作
- 視圖
- 模版
- 模型
- 雜項
- 命令行
- 交互
- 微信小程序
- 介紹
- 配置
- 組件
- 交互
- API
- 其他知識
- 百度小程序
- 介紹
- 配置
- 組件
- 交互
- API
- 其他知識
- Linux
- 服務器上線流程
- 安裝svn
- MySQL
- 認識MySQL
- MySQL函數
- 雜項
- composer依賴管理工具