標籤:
php中對資料庫的操作,舉例如下:
//串連到本地mysql資料庫 $myconn=mysql_connect("localhost","root","root");
//這就是指定資料庫字元集,一般放在串連資料庫後面就系了
mysql_query("set names ‘gbk‘"); //
//選擇test為操作庫
mysql_select_db("test",$myconn);
$strSql="select * from user";
//用mysql_query函數從user表裡讀取資料
$result=mysql_query($strSql,$myconn);
//通過迴圈讀取資料內容
while($row=mysql_fetch_array($result)) {?><tr> <td align="center" height="19"><?echo $row["id"]?></td> <td align="center"><?echo $row["userid"]?></td> 。。。</tr><? } //關閉對資料庫的串連 mysql_close($myconn);
上例中列出了大部分常用的php中資料庫操作,為mysql連結版,這樣的代碼有幾個問題:
0.可以通過預定義的方式來定義變數,比如資料庫所在的主機,使用者名稱等:如define(MYSQL_HOST, ‘localhost’)。在編寫代碼時應時刻注意這個問題,通過這樣的解耦合操作,使代碼可重用,易修改性得到很大提高。
1. 每種操作都不保證成功,可以添加die()錯誤處理:如
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or die(‘Unable to connect, please check connection paremeters’);
die()和exit()都是中止指令碼執行函數;其實exit和die這兩個名字指向的是同一個函數,die()是exit()函數的別名。該函數只接受一個參數,可以是一個程式返回的數值或是一個字串,也可以不輸入參數,結果沒有傳回值。
參考:雖然兩者相同,但通常使用中也有細微的選擇性。例如:
當傳遞給exit和die函數的值為0時,意味著提前終止指令碼的執行,通常用exit()這個名字 echo "1111"; exit(0);
當程式出錯時,可以給它傳遞一個字串,它會原樣輸出在系統終端上,通常使用die()這個名字。$fp=fopen("./readme.txt","r") or die("不能開啟該檔案");
2.這裡的代碼只針對mysql,若系統要遷移,資料庫要變為其他,如Oracle等則代碼變動較多,帶來很多額外工作量。而java做後台,則有jdbc來訪問資料庫,通過不同的資料庫廠商提供的資料庫驅動訪問資料庫。所以從php5之後加入了類似的pdo來為多種資料庫提供統一訪問,使用pdo可以屏蔽底層資料庫差異。下面一個簡答舉例:
<?php$dsn = "mysql:host=localhost;dbname=test"; $db = new PDO($dsn, ‘root‘, ‘‘);$count = $db->exec("INSERT INTO foo SET name = ‘heiyeluren‘,gender=‘男‘,time=NOW()");echo $count;$db = null;?>
建立pdo對象時第一個參數為資料來源,裡面可以指定來自不同的資料庫的參數。然後可以使用pdo的一系列方法與資料來源互動。
php中關於資料庫的操作