資料庫(kù)連線步驟
資料庫(kù)連線步驟
我們?yōu)榇蠹覍①Y料庫(kù)連線整理成了最重要的8個(gè)步驟,戲稱它為:「資料庫(kù)連結(jié)天龍八步」。
這八個(gè)步驟如下,並且將每一步使用的函數(shù)都做了說(shuō)明:
#第一步: 連接資料庫(kù)伺服器
第二步:判斷錯(cuò)誤
第三步: 選擇資料庫(kù)
若在第一步驟已填入資料庫(kù),不需要更換成其他資料庫(kù),則不需要執(zhí)行第三步驟。 第四步: 設(shè)定字元集
第五步:準(zhǔn)備SQL語(yǔ)句
其實(shí)就是一個(gè)SQL語(yǔ)句的字串。
例如:
$sql = "insert into user(username,password) values('$username','$password')";
我們通常要把變數(shù)賦值在SQL語(yǔ)句中使用。可是變數(shù)或SQL語(yǔ)句出錯(cuò)了,非常不好檢查。
我們根據(jù)實(shí)際工作經(jīng)驗(yàn)增加了這一步驟。
如果在執(zhí)行此步驟的時(shí)候報(bào)錯(cuò)了,我們可以把SQL語(yǔ)句印出來(lái),貼在phpMyAdmin或相關(guān)工具中。
排錯(cuò)時(shí),如果執(zhí)行成功就說(shuō)明不是SQL語(yǔ)句的問(wèn)題。如果執(zhí)行失敗,請(qǐng)仔細(xì)檢查SQL語(yǔ)句。 第六步: 傳送SQL語(yǔ)句
#SQL語(yǔ)句準(zhǔn)備完成,需要透過(guò)mysqli_query將SQL語(yǔ)句傳送給MySQL伺服器。
MySQL伺服器會(huì)執(zhí)行傳送過(guò)來(lái)的SQL語(yǔ)句來(lái)執(zhí)行。 第7步:判斷是否執(zhí)行正?;虮闅v資料
讀取###第6步驟中,發(fā)送的是select類別的語(yǔ)句,通常需要將結(jié)果輸出顯示出來(lái)。就需要用到遍歷顯示資料的函數(shù)。 ###
#寫入
修改和刪除
在第6步驟中,如果發(fā)送的是update和delete類別的語(yǔ)句。只需要判斷是否執(zhí)行成功即可。我們將這些常用函數(shù)列出資料表給大家看。
資料庫(kù)連線是一個(gè)資源型別。我們?cè)谥暗恼鹿?jié)中講解資源類型的時(shí)候跟大家說(shuō)過(guò)。凡是涉及到數(shù)資源類型的有開(kāi)啟就有關(guān)閉。這樣能夠確保PHP更有效率的處理與回收資源。
因此,資料庫(kù)連線成功後,不需要使用的時(shí)候。我們可以關(guān)閉這個(gè)連線。
其他:顯示伺服器資訊函數(shù)
注意:mysqli只學(xué)過(guò)程化的方法即可。在物件導(dǎo)向階段實(shí)際工作中完全拋棄了mysqli的物件用法,而是使用的是PDO物件連接資料庫(kù)的方式。
1.為了更好地設(shè)定資料連接,一般會(huì)將資料連接所涉及的值定義成變數(shù).<?php
$mysql_server_name='localhost'; //改成自己的mysql數(shù)據(jù)庫(kù)服務(wù)器
$mysql_username='root'; //改成自己的mysql數(shù)據(jù)庫(kù)用戶名
$mysql_password='123456789'; //改成自己的mysql數(shù)據(jù)庫(kù)密碼
$mysql_database='php'; //改成自己的mysql數(shù)據(jù)庫(kù)名
?>
也可把以上變數(shù)放在一個(gè)文件裡,可以隨時(shí)讓其他檔案呼叫.
例如: 將以上內(nèi)容放在:db_config.php 那麼在其他需要用到資料庫(kù)的頁(yè)面直接呼叫.
呼叫程式碼:require( "db_config.php");
<?php $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password) or die("error connecting") ; //連接數(shù)據(jù)庫(kù) mysql_query("set names 'utf8'"); //數(shù)據(jù)庫(kù)輸出編碼 應(yīng)該與你的數(shù)據(jù)庫(kù)編碼保持一致.南昌網(wǎng)站建設(shè)公司百恒網(wǎng)絡(luò)PHP工程師建議用UTF-8 國(guó)際標(biāo)準(zhǔn)編碼. mysql_select_db($mysql_database); //打開(kāi)數(shù)據(jù)庫(kù) $sql ="select * from news "; //SQL語(yǔ)句 $result = mysql_query($sql,$conn); //查詢 ?>###?#########3.讀取表中的內(nèi)容,這裡我們用while,可以根據(jù)具體情況,用for 或其他的.######
<?php while($row = mysql_fetch_array($result)) { echo "<div style=\"height:24px; line-height:24px; font-weight:bold;\">"; //排版代碼 echo $row['Topic'] . "<br/>"; echo "</div>"; //排版代碼 } ?>#######?4.php寫入資料庫(kù),Mysql資料的寫入######
<?php $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password); //連接數(shù)據(jù)庫(kù) mysql_query("set names 'utf8'"); //數(shù)據(jù)庫(kù)輸出編碼 mysql_select_db($mysql_database); //打開(kāi)數(shù)據(jù)庫(kù) $sql = "insert into messageboard (Topic,Content,Enabled,Date) values ('$Topic','$Content','1','2011-01-12')"; mysql_query($sql); mysql_close(); //關(guān)閉MySQL連接 ?>###?# ###########