首頁 後端開發 php教程 merry merry christmas PHP 和 MySQL 開發的 8 個技巧

merry merry christmas PHP 和 MySQL 開發的 8 個技巧

Jul 29, 2016 am 08:35 AM

1. PHP 中陣列的使用  
在操作資料庫時,使用關聯陣列(associatively-indexed arrays)十分有幫助,下面我們看一個基本的數字格式的陣列遍歷:  
$ temp[0] = "richmond";  
$temp[1] = "tigers";  
$temp[2] = "premiers";  
for($x=0;$x{  
echo $temp[$x];  
echo " ";  
}  
然而為:  
$temp = array("richmond", "tigers", "premiers");  
foreach ($temp as"$ 🎜>?>  
foreach 也能輸出文字下標:  
$temp = array("club" => "richmond", 

"aim" => "premiers");  
foreach ($temp as $key => $value)  
echo "$, :?$value)  
echo "$中描述了大約 50 個用來處理陣列的函數。
2. 在 PHP 字串中加入變數  
這個很簡單的:  
$temp = "hello"  
echo "$
但要說明的是,雖然以下的範例沒有錯誤:  
$temp = array("one" => 1, "two" => 2);   echo "The first element is $temp[one].";  
?>  
但如果短語沒有雙號寫字號因此建議使用花括號:  
$temp = array("one" => 1, "two" => 2);  
echotemp The "]}.";  
?>  
3. 採用關聯陣列存取查詢結果  
看下面的範例:  
$connection 
$connection 
$connection albert", "shhh");  
mysql_select_db("winestore", $connection);  
$result = mysql_query("SELECT cust_id, omername,$com); 🎜> while ($row = mysql_fetch_array($result))  
{  
echo "ID:t{$row["cust_id"]}n";  
echo "Ssurname.$. n";  
echo "First name:t{$row["firstname"]}nn";  
}  
?>  
 my_fetch_array() 將查詢結果放入可查詢結果同時用兩種方式引用,例如 cust_id 可以同時使用以下兩種方式:$row["cust_id"] 或$row[0] 。顯然,前者的可讀性比後者好多了。
在多表連查中,如果兩個欄位名字一樣,最好用別名分開:  
SELECT winery.name AS wname,  
region.name AS rname 🎜>WHERE winery.region_id = region.region_id;  
列名的引用為:$row["wname"] 和 $row["rname"]。  
在指定表名和列名的情況下,只引用列名:  
SELECT winery.region_id  
FROM winery  
列名的引用為: id$  
聚集函數的引用就是引用名稱:  
SELECT count(*)  
FROM customer;  
列名的引用為: $row["count(*)"]。
4. 注意常見的 PHP bug  
常見的 PHP 糾錯問題是:  
No page rendered by the Web   the "Document Contains No Data"  
A partial page when more is expected  
出現這些情況的大多數原因並不在於腳本的邏輯,而是 HTML 中存在的  或腳本產生的bug HTML 例如缺少類似 , ,  之類的關閉 Tag,頁面就不能刷新。解決這個問題的辦法就是,看看 HTML 的原始碼。  
對於複雜的,不能查到原因的頁面,可以透過 W3C 的頁面校驗程式 http://validator.w3.org/ 來分析。  
如果沒有定義變量,或是變數定義錯誤也會讓程式變得古怪。例如下面的死迴圈:  
for($counter=0; $countermyFunction();  
,而 $counter 永遠小於 10。這類錯誤一般都能透過設定較高的錯誤回報等級來找到:  
error_reporting(E_ALL);  
for($counter=0; $countermyFunction();  
?>  
5. 採用 header() 函數處理單一元件查詢  
在許多 Web 資料庫應用程式中,其中某些功能往往讓使用者點擊一個連線後,繼續停留在目前頁面後,繼續停留在目前頁面後,繼續停留在目前頁面後,繼續停留在目前頁面上,這樣的工作我叫它「單部件查詢」。
下面是一個叫做 calling.php 的腳本:  
HTML PUBLIC  
"-//W3C//DTD HTML 4.0 Transitional//EN" .org/TR/html4/loose.dtd" >  
  
  
Calling page example  

Click here!  
  
  
使用者點選上方的連線時,就去呼叫 action. php。以下是 action.php 的來源碼:  
// 資料庫功能  
// 重定向  
header("Location: $TP_REFFERER"); >  
這裡有兩個常見的錯誤需要提醒一下:  
呼叫 header() 函數後要包含一個 exit 語句讓腳本停止,否則後續的腳本可能會在頭部傳送前輸出。
header() 函數常見的一個錯誤是:  
Warning: Cannot add header information - headers already sent...  
header() 前面可能存在的空行,空格等等。  
6. reload 的問題及其解決  
我以前在寫 PHP 程式時,並且經常碰到頁面刷新時,資料庫多處理一次的情況。
我們來看看 addcust.php:  
$query = "INSERT INTO customer  
SET  = mysql_connect("localhost", "fred", "shhh");  
mysql_select_db("winestore", $connection);  
>HTML PUBLIC  
"-//W3C//DTD HTML 4.0 Transitional//EN"  
"http://www.w3.org/TR/html4/loose.o.dto>   
  
Customer insert  
  
     
  
?>  
假設我們用下面的連結使用這個程式:  
http://www.freelamp.com/addcust. ... &firstname=Fred 🎜>如果這個請求只提交一次,OK ,不會有問題,但是如果多次刷新,你就會有多筆記錄插入。
這個問題可以透過 header() 函數來解決:以下是新版本的 addcust.php:  
$query = "INSERT INTO customercom firstname = $firstname";  
$connection = mysql_connect("localhost", "fred", "s值");  
mysql_select_db("winestore",$con , $connection);  
header("Location: cust_receipt.php");  
?>  
這個腳本把瀏覽器重定向到一個新的頁面:cust_receipt.php:🎜>這個腳本把瀏覽器重新導向到一個新的頁面:cust_receipt.php: HTML PUBLIC  
"-//W3C//DTD HTML 4.0 Transitional//EN"  
"http://www.w3.org/TR/html4/loose.dtd" >  🎜>  
Customer insert  
  
  
I've inserted
  
這樣,原來的頁面繼續刷新也沒有副作用了。  
7. 巧用鎖定機制來提高應用效能  
如果我們要緊急執行一個報表,那麼,我們可以對錶加寫鎖,防治別人讀寫,來提高對這個表的處理速度。  
8. 用 mysql_unbuffered_query() 開發快速的腳本  
這個函數能用來取代 mysql_query() 函數,主要的差異就是 mysql_unbuffered_query()  
但是回傳的行數不能用mysql_num_rows() 函數來檢查,因為輸出的結果集大小不詳。

以上就介紹了merry merry christmas PHP 和 MySQL 開發的 8 個技巧,包括了merry merry christmas方面的內容,希望對PHP教程有興趣的朋友有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話如何劫持工作,如何在PHP中減輕它? 會話如何劫持工作,如何在PHP中減輕它? Apr 06, 2025 am 12:02 AM

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

描述紮實的原則及其如何應用於PHP的開發。 描述紮實的原則及其如何應用於PHP的開發。 Apr 03, 2025 am 12:04 AM

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試? 在PHPStorm中如何進行CLI模式的調試? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

PHP 8.1中的枚舉(枚舉)是什麼? PHP 8.1中的枚舉(枚舉)是什麼? Apr 03, 2025 am 12:05 AM

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

如何在系統重啟後自動設置unixsocket的權限? 如何在系統重啟後自動設置unixsocket的權限? Mar 31, 2025 pm 11:54 PM

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

See all articles