舉例如下:
十年建站經(jīng)驗, 成都做網(wǎng)站、成都網(wǎng)站制作客戶的見證與正確選擇。成都創(chuàng)新互聯(lián)公司提供完善的營銷型網(wǎng)頁建站明細(xì)報價表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。
創(chuàng)建userinfo_update.php頁面用于查詢用戶信息,先顯示信息,在修改:
先通過GET獲取用戶編號查詢用戶信息:
$sql = "select * from user_info where user_id='".$_GET['userId']."'";
$result = mysql_query($sql,$con);
if($row = mysql_fetch_array($result)){
}
頁面效果:
創(chuàng)建update.php文件,用于修改用戶信息:
使用到了mysql_affected_rows() 函數(shù)返回前一次 MySQL 操作所影響的記錄行數(shù)。
//通過post獲取頁面提交數(shù)據(jù)信息
$userId = $_POST[userId];
$userName = $_POST[userName];
$userAge = $_POST[userAge];
$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";
mysql_query($sql,$conn);//執(zhí)行SQL
$mark? = mysql_affected_rows();//返回影響行數(shù)
$url = "userinf_select.php";
運行結(jié)果
創(chuàng)建delete.php文件,完成刪除用戶信息功能:
$userId = $_GET['userId'];
include 'connection.php';
$sql = "delete from user_info where user_id='".$userId."'";
mysql_query($sql,$con);
$mark? = mysql_affected_rows();//返回影響行數(shù)
if($mark0){
echo "刪除成功";
}else{
echo? "刪除失敗";
}
mysql_close($con);
運行結(jié)果:
1. 嘗試設(shè)置一個頁面模板
1)拷貝一個index.php并改名為其它名,如list.php;
2)在list.php頁面最頂部添加
?php /*
Template Name: 友鏈
*/
?
以上兩步就可以創(chuàng)建一個頁面模板了,修改并保存好這個文件后,創(chuàng)建一個新頁面或者修改已存在的頁面。在右下邊有個“頁面模板”的面板,在下拉菜單中選中“友鏈”后保存就可以了。
然后在頁面中添加任何內(nèi)容,包括html代碼就可以顯示了??墒俏业男枨笫且约和瓿蒔HP代碼獲取數(shù)據(jù)并展示,它不能這么做。
2. 調(diào)用 WordPress 的 API實現(xiàn)URL正確跳轉(zhuǎn)
這種方法的自由度較高,并且可以創(chuàng)建非WordPress格式的URL。比如我們要把 轉(zhuǎn)交給主題文件夾下的 /custom/list.php 來處理,就可以用這種方式來處理。這種方法用到 template redirect 鉤子,template redirect 是 WordPress 在預(yù)處理好所有參數(shù)設(shè)置之后決定調(diào)用主題模板的時候調(diào)用的。
在functions.php模板函數(shù)文件中添加以下實例代碼:
function loadCustomTemplate($template) {
global $wp_query;
if(!file_exists($template))return;
$wp_query-is_page = true;
$wp_query-is_single = false;
$wp_query-is_home = false;
$wp_query-comments = false;
// if we have a 404 status
if ($wp_query-is_404) {
// set status of 404 to false
unset($wp_query-query["error"]);
$wp_query-query_vars["error"]="";
$wp_query-is_404=false;
}
// change the header to 200 OK
header("HTTP/1.1 200 OK");
//load our template
include($template);
exit;
}
function templateRedirect() {
$basename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
loadCustomTemplate(TEMPLATEPATH.'/custom/'."/$basename.php");
}
add_action('template_redirect', 'templateRedirect');
這樣就實現(xiàn)了 WordPress 查找 /custom 文件夾下的 php 文件,并且將相匹配的 URL 請求轉(zhuǎn)交給對應(yīng)的 php 文件來處理的效果,與此同時,這個 php 文件還保持了對 WordPress API 的調(diào)用,因此留給我們的空間非常大。
接下來就可以在 /custom 文件夾下自定義一個list.php文件然后通過鏈接訪問。
3. 添加頁面內(nèi)容,獲取自定義數(shù)據(jù)庫/表中的內(nèi)容
然后就可以根據(jù)需要自己需要來實現(xiàn)自己想要的功能,這里需要有以下幾點要處理:
1)如何操作數(shù)據(jù)庫
WordPress提供了一個全局變量$wpdb,并將其實例化為wpdb類的對象。這樣我們就可以直接使用$wpdb來調(diào)用所有的數(shù)據(jù)庫操作函數(shù)。通過這個$wpdb對象,我們可以對WordPress數(shù)據(jù)庫進(jìn)行任何操作,包括建表、查詢、刪除、更新等。使用$wpdb-get_results實現(xiàn)執(zhí)行sql語句操作數(shù)據(jù)庫,并獲取結(jié)果。
global $wpdb;
$sql= "SELECT * FROM ".$wpdb-prefix.table;
$a = $wpdb-get_results($sql);
2)使用wordpress的樣式
通過F12查看首頁代碼就可以發(fā)現(xiàn)只要使用對應(yīng)的class樣式就能輕松讓頁面統(tǒng)一規(guī)整。那么就把對應(yīng)的html添加到自定義PHP頁面中即可。
3)利用wordpress的規(guī)則輕松實現(xiàn)翻頁
wordpress已經(jīng)默認(rèn)支持翻頁,格式如:,只要在自定義的頁面里面定義好每頁返回正確的內(nèi)容就好啦。
4. 設(shè)置nginx rewrite規(guī)則
可讀性強(qiáng)的URL一定不能是這樣的格式,對爬蟲也不友好,那就需要配置好rewrite規(guī)則,我使用的是nginx的配置為:
rewrite ^(.*)/indexed/page/([0-9]+)$ $1/indexed?page=$2 last;
到現(xiàn)在為止,離成功只有一步之遙了,那就是新建一個頁面, 大功告成!
前邊介紹了負(fù)載均衡,mysql同步,接下來介紹tp6分布式部署多個數(shù)據(jù)庫,實現(xiàn)讀寫分離。
tp6的分布式部署讀和寫仍然是一個系統(tǒng),這里我們分開操作,給用戶展示的就是從數(shù)據(jù)庫,后端添加文章就是主庫,然后同步到從庫。
1、配置數(shù)據(jù)庫鏈接參數(shù)
目標(biāo):實現(xiàn)隨機(jī)使用數(shù)據(jù)庫展示信息,只是讀操作。
測試:前臺可以讀取表中內(nèi)容(存放的不一致),查看是否是隨機(jī)顯示的。
打開.env文件進(jìn)行編輯
說明:
2、編輯database.php
找到deploy設(shè)置為1分布式部署,下邊不要改,都是讀,寫入的也就是后端的我們單獨建站連接主庫。
配置完成,tp6使用的是mt_rand取隨機(jī)數(shù)判斷使用哪個數(shù)據(jù)庫。
3、數(shù)據(jù)庫交互寫操作
比如瀏覽量沒必要每次都去更新數(shù)據(jù)庫,可以先使用redis緩存,存夠1000的整數(shù)倍,再去更新數(shù)據(jù)庫。
4、后臺獨立,也就是寫
可以前后端分離,單獨做一個網(wǎng)站(沒有前端)使用ip訪問或者獨立的域名連接后臺。
5、上傳附件(jquery ajax跨域上傳)
使用了nginx負(fù)載均衡,肯定是多個一樣的網(wǎng)站,如果圖片存放到一個站,別的就不能訪問了,可以單獨設(shè)置一個附件(壓縮包,圖片等)服務(wù)器,可以使用二級域名連接,這就要求我們上傳附件的時候,是上傳到附件服務(wù)器。
jqueryURL
API控制器apdpic方法
說明:
也可以先傳到后臺服務(wù)器然后使用(php)ftp上傳,或者是通過curl上傳到附件服務(wù)器,感覺那樣畢竟麻煩,直接設(shè)置跨域會比較簡單。
也測試了使用jsonp跨域,但是不能上傳附件。
6、thinkphp6實現(xiàn)讀寫分離(在一個站點)
我個人是不喜歡這樣的,負(fù)載均衡應(yīng)該是均衡地讀,也就是前臺單獨一個站點,后端的寫是另一個獨立的站點,看個人喜好吧。
獨立后臺的優(yōu)點:可以提升安全性,因為我們的后臺網(wǎng)址是不公開的,避免用戶猜測一些后臺的信息。
.env配置按照1所述編輯,默認(rèn)第一個是主庫。
database.php
愿大家在新的一年心想事成,萬事如意?。?!