下面我綠蘋果帶大家走進PHP的入門之路
說明:
我這裡暫時是以Apache web server 和MY SQL 作為WEB伺服器和資料庫,在php-4.3.3下的環境做的程序。當然要簡單的建置與存取查看資料庫 PHPMYADMIN 不可少
這裡需要懂得HTML基礎知識!沒有HTML基礎知識的!可以去百度或GOOGLE搜下!很簡單的!這裡就不多說了
好了我們開始吧!我們就把PHP入門當成蘋果吧!一口一口的吃掉他!
不囉嗦了!開始了
吃蘋果一
1、嵌入方法:
類似ASP的,當然您也可以自己指定。
2.引用文件:
引用文件的方法有兩種:require 和 include。
require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程式網頁的一部分。常用的函數,亦可以這個方法將它引入網頁中。
include 使用方法如 include("MyIncludeFile.php"); 。這個函數一般是放在流程控制的處理部分。 PHP 程式網頁在讀到 include 的檔案時,才將它讀進來。這種方式,可以把程式執行時的流程簡單化。
3、註解方法:
echo "這是第一個範例。n" ; // 本例是C++ 語法的註解(PHP的註解跟C差不多!)
/* 本例採用多行的
註解方式*/
echo "這是第二種例子。n" ;
echo "這是第三個例子。n" ; # 本例使用UNIX Shell 語法註解
?>
4、變數型別:
$mystring = "我是字串" ;
$NewLine = "換行了n" ;
$int1 = 38 ;
$float1 = 1.732 ;
$float2 = 1.4E+2 ;
$MyArray1 = array( "子" , "醜" , "寅" , "卯" );
引出兩個問題,首先PHP變數以$開頭,第二PHP語句以;結尾,可能ASP程式設計師會不適應。這兩個遺漏也是程序上大多錯誤所在。
5、運算符號:
數**非法字眼已被屏蔽**算:
符號意義
+ 加法運算
- 減法運算
* 乘法運算
/除法運算
% 取餘數
++ 累加
-- 遞減
字串運算:
運算符號只有一個,就是英文的句號。它可以將字串連接起來,變成合併的新字串。類似ASP中的&
$a = "PHP 4" ;
$b = "功能強大" ;
echo $a.$b;
?>
這裡也引出兩個問題,首先PHP中輸出語句是echo,第二個類似ASP中的,PHP中也可以=變數?>。
邏輯運算:
符號意義
> 大於
>= 大於或等於
== 等於
!= 不等於
&& 而且(And)
and 而且(And)
或(Or)
or 或(Or)
xor 異或(Xor)
! 不(Not)
說一下流程控制。
學習目的:掌握php的流程控制
1、if..else 循環有三種結構
第一種是只有用到 if 條件,當作單純的判斷。解釋成 "若發生了某事則怎樣處理"。語法如下:
if (expr) { statement }
其中的 expr 為判斷的條件,通常都是用邏輯運算符號當判斷的條件。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。
範例:本例省略大括號。
if ($state==1)echo "哈哈" ;
?>
這裡特別注意的是,判斷是否相等是==而不是=,ASP程式設計師可能常犯這個錯誤,= 是賦值。
範例:本例的執行部分有三行,且不可省略大括號。
if ($state==1) {
echo "哈哈;
echo "
" ;
}
?>
第兩種是除了if 之外,加上了else 的條件,可解釋成"若發生了某事則怎樣處理,否則該如何解決"。上面的例子來修改成更完整的處理。 "哈哈" ;
echo "
";
}
else{
echo "呵呵";
echo "
";
}
?>
第三種就是遞歸的if..else 循環,通常用在多種決策判斷時。 ?php
if ( $a > $b ) {
echo "a 比b 大" ;
} elseif ( $a == $b ) {
echo "a 等於b" ;
} else {
echo "a 比b 小" ;
}
?>
上例只用二層的if..else 循環,用來比較a 和b 兩個變數。
2、 for 迴圈單純只有一種,沒有變化,它的語法如下
for (expr1; expr2; expr3) { statement }
其中的 expr1 為條件的初始值。 expr2 為判斷的條件,通常都是用邏輯運算符號 (logical operators) 當判斷的條件。 expr3 為執行 statement 後要執行的部份,用來改變條件,供下次的迴圈判斷,如加一..等等。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。
下例是用 for 迴圈寫的例子。
for ( $i = 1 ; $i echo "這是第".$i."次循環
" ;
}
?>
3、 switch 循環,通常處理複合式的條件判斷,每個子條件,都是case 指令部分。在實作上若使用許多類似的 if 指令,可以將它綜合成 switch 迴圈。
語法如下
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }
其中的 expr 條件,通常為變數名稱。而 case 後的 exprN,通常表示變數值。冒號後則為符合該條件要執行的部分。注意要用 break 跳離循環。
switch ( date ( "D" )) {
case "Mon" :
echo "今天星期一" ;
break;
case "Tue" :
echo "今天星期二" ;
break;
case "Wed" :
echo "今天星期三" ;
break;
case "Thu" :
echo "今天星期四" ;
break;
case "Fri" :
echo "今天星期五" ;
break;
default:
echo "今天放假" ;
break;
}
?>
這裡要注意的是break;別遺漏了,default,省略是可以的。
很明顯的,上述的例子用 if 迴圈就很麻煩了。當然在設計時,要將出現機率最大的條件放在最前面,最少出現的條件放在最後面,可以增加程式的執行效率。上例由於每天出現的機率相同,所以不用注意條件的順序。
學會建立資料庫
在PHP中,MY SQL的命令列編輯可能會讓初學者感到很麻煩,不要緊,你下載一個PHPMYADMIN安裝一下,以後建立編輯資料庫可以靠它了。
下面說一下它的使用。
進入了phpmyadmin後,我們首先需要建立一個資料庫,
Language (*) 這裡選擇中文簡體,然後在左邊的 建立一個新的資料庫 這裡填入資料庫名字,點選建立即可。
然後在左邊下拉選單中選擇那個已經建立的資料庫。在下面的
在資料庫shop 中建立一個新表:
名字:
字段數:
中填寫表名字和大致你認為的字段數(不夠或者多了都不要緊,以後可以再添加或缺省),按執行。
然後就可以開始建立表格了。
第一欄是欄位的名字;第二欄選擇欄位類型:
我們常用的是以下幾個:
1)VARCHAR,文字型別
2)INT,整數型
3)FLOAT,浮點數類型
4)DATE,日期型
5)大家或許會問,自動加入的ID在哪裡?這個只要選擇INT類型,在後面的額外中選擇 auto_increment 就可以了。
建立了表以後,可以在左邊看到你建立的表,點擊以後,你可以:
1)按右邊的結構:查看修改表結構
2)按右邊的瀏覽:查看表中的資料
3)按右邊的SQL:執行SQL語句
4)按右邊的插入:插入一行記錄
5)按右邊的清空:刪除表中所有記錄
6)按右邊的刪除:刪除表
還有一個很重要的功能就是導入和導出,當我們本機做好了程式和資料庫的時候,需要在伺服器上也有一個本地鏡像,如果是ASP的ACCESS簡單了,直接上傳MDB檔案即可,如果是SQL SERVER也可以連接遠端伺服器進行匯入。那麼MY SQL中你可以匯出所有的SQL語句,到了遠端伺服器的PHPMYADMIN上,建立資料庫後按下SQL,貼上貼文你剛才複製下來的所有本級產生的SQL語句即可。
學會連接資料庫
PHP簡直就是一個函數庫,豐富的函數使PHP的某些地方相當簡單。建議大家down一本PHP的函數手冊,總用的到。
我這裡就簡單說一下連接MYSQL資料庫。
1、mysql_connect
開啟 MySQL 伺服器連線。
語法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 傳回值: 整數
本函數建立與 MySQL 伺服器的連線。其中所有的參數都可省略。使用本函數卻不加任何參數時,參數 hostname 的預設值為 localhost、參數 username 的預設值為 PHP 執行行程的擁有者、參數 password 則為空字串 (即沒有密碼)。而參數 hostname 後面可以加冒號與連接埠號,代表使用哪個連接埠與 MySQL 連線。當然在使用資料庫時,早點使用 mysql_close() 將連線關掉可以節省資源。
2、 mysql_select_db
選擇一個資料庫。
语法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整数
本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true,失败则返回 false。
最简单的例子就是:
$c ("127.0.0.1", "", "");
mysql_select_db("shop");
连接机MY SQL数据库,打开SHOP数据库。在实际应用中应当加强点错误判断。
学会读取数据
先看两个函数:
1、mysql_query
送出一个 query 字符串。 语法: int mysql_query(string query, int [link_identifier]); 返回值: 整数
本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时,返回的可能是 true 或者 false;查询的字符串是 SELECT 则返回新的 ID 值,当返回 false 时,并不是执行成功但无返回值,而是查询的字符串有错误。
2、mysql_fetch_object 返回类资料。 语法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 类
本函数用来将查询结果 result 拆到类变量中。若 result 没有资料,则返回 false 值。
看一个简单的例子:
$exec="select * from user";
$result=mysql_query($exec);
while($rs=mysql_fetch_object($result))
{
echo "username:".$rs->username."
";
}
?>
当然,表user中有一个username的字段,这就类似asp中的
<%
exec="select * from user"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
do while not rs.eof
response.write "username:"&rs("username")&"
"
rs.movenext
loop
%>
当然先要连接数据库,一般我们 require_once('conn.php');而conn.php里面就是上一次说的连接数据库的代码。
小小的两条命令可以完成读取数据的工作了
学会添加删除修改数据
mysql_query($exec);
单这个语句就可以执行所有的操作了,不同的就是$exec这个sql语句
添加:$exec="insert into tablename (item1,item2) values ('".$_POST['item1']."',".$_POST['item1'].")";
删除:$exec="delete from tablename where...";
修改:$exec="update tablename set item1='".$_POST['item1']."' where ...";
说到这里就要说一下表单和php变量传递,如果表单中的一个
表单以POST提交的,那么处理表单文件就可以用$_POST['item1']得到变量值,同样以GET提交的就是$_GET['item1']
是不是很简单?但是通常$exec会有问题,因为可能您的SQL语句会很长,您会遗漏.连接符,或者'来包围字符型字段。
我们可以注释mysql_query($exec);语句用echo $exec;代替来输出$exec以检查正确性。如果您还不能察觉$exec有什么错误的话,可以复制这个sql语句到phpmyadmin中执行,看看它的出错信息。还有需要注意的是,我们不要使用一些敏感的字符串作为字段名字,否则很可能会出现问题,比如说date什么的。变量的命名,字段的命名遵循一点规律有的时候对自己是一种好处,初学者并不可忽视其重要性。
学会SESSION的使用
SESSION的作用很多,最多用的就是站点内页面间变量传递。
在页面开始我们要session_start();开启SESSION;
然后就可以使用SESSION变量了,比如说要赋值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很简单吧。这里我们可能会使用到一些函数,比如说判断是不是某SESSION变量为空,可以这么写:empty($_SESSION['inum'])返回true or false。
下面综合一下前面所说的我们来看一个登陆程序,判断用户名密码是否正确。
登陆表单是这样:login.php