php連接mysql數據庫
PHP訪問MYSQL數據庫的五個步驟
1.連接MySQL數據庫
使用 mysql_connect()函數建立與MySQL服務器的連接。
2.選擇MySQL數據庫
使用 mysql_select_db()函數選擇MySQL數據庫服務器的數據庫。
3.執行 SQL 語句
在選擇數據庫中使用 mysql_query()函數執行 SQL語句,對數據的操作方式主要包括 5種方式,下面我們分別進行介紹。
查詢數據:使用select 語句實現數據的查詢功能。
顯示數據:使用select 語句顯示數據的查詢結果。
插入數據:使用insert into 語句向數據庫中插入數據。
更新數據:使用update 語句更新數據庫中的記錄。
刪除數據:使用 delete語句刪除數據庫中的記錄!
4.關閉結果集
數據庫操作完成後,需要關閉結果集,以釋放系統資源,使用
mysql_free_result(
$result
);
5.關閉MySQL服務器
每使用一次 mysql_connect()或者mysql_query()函數,都會消耗系統資源,如果用戶連接超過一定數量時,就會造成系統性能下降,甚至是死機,爲了避免這種現象的發生,在完成數據庫的操作後,應該使用 mysql_close()函數關閉與MYSQL服務器的連接,以節省系統資源。
技巧:
如果在多個網頁中都要頻繁進行數據庫訪問,那麼可以建立與數據庫服務器的持續連接來提高效率,因爲每次與數據庫服務器的連接需要較長的時間和交大的資源開銷,持續的連接相對來說會更有效率,建立持續連接的方法就是在數據庫間接時,調用函數 mysql_pconnect()代替mysql_connect函數。建立的持續連接在本程序結束時,不需要調用 mysql_colse()來關閉與數據庫服務器的連接。下次程序在此執行 mysql_pconnect()函數時,系統自動直接返回已經建立的持續連接ID號,而不再去真的連接數據庫。
PHP 中與數據庫的連接是非持久連接,系統會自動回收,一般不用設置關閉,但是如果一次性訪問的結果集比較大,或者網站訪問量比較多,那麼最好使用 mysql_close()函數手動進行釋放。
使用mysql_connect()函數連接數據庫
//創建連接 $conn = new mysqli('localhost','root','123456','test'); //檢測連接 if($conn->connect_error){ die('連接失敗:'.$conn->connect_error); }
使用mysql_select_db()函數選擇數據庫文件
下面的實例使用了 mysql_select_db()函數連接數據庫,具體實例代碼如下:
$link = mysqli_connect('localhost','root','123456') or die('不能連接到數據庫').mysqli_error(); $conn = mysqli_select_db($link,'test'); if($conn){ echo '數據庫連接成功'; }
上面的代碼$conn = mysqli_select_db($link,'test');可以使用下面的代碼替代:
$conn = mysqli_query($link,'use test');
使用mysql_query()函數執行SQL語句
下面舉例說明常見的 SQL 語句的用法。
<?php $conn = mysqli_connect('localhost','root','123456','test') or die('不能連接到數據庫').mysqli_error(); //添加會員記錄 $sql = "INSERT INTO login(username,password,confirm,email) VALUES ('cyy2','123456','123456','[email protected]')"; if(mysqli_query($conn,$sql)){ echo '插入成功'; }else{ echo 'error:'.$sql.'<br>'.mysqli_error($conn); } //修改會員記錄 $sql = "UPDATE login SET username = 'cyy' where id = '3'"; if(mysqli_query($conn,$sql)){ echo '更新成功'; }else{ echo 'error:'.$sql.'<br>'.mysqli_error($conn); } //刪除會員記錄 $sql = "DELETE FROM login WHERE id = '4' "; if(mysqli_query($conn,$sql)){ echo '刪除成功'; }else{ echo 'error:'.$sql.'<br>'.mysqli_error($conn); } //查詢會員記錄 $sql = "SELECT * FROM login"; if(mysqli_query($conn,$sql)){ echo '查詢成功'; }else{ echo 'error:'.$sql.'<br>'.mysqli_error($conn); } //顯示錶結構 $sql = "DESC login"; if(mysqli_query($conn,$sql)){ echo '顯示成功'; }else{ echo 'error:'.$sql.'<br>'.mysqli_error($conn); }
使用mysql_fetch_array()獲取數組結果集中的信息
mysql_fetch_array() 函數從結果集中取得一行作爲關聯數組,或數字數組,或二者兼有返回根據從結果集取得的行生成的數組,如果沒有更多行則返回 false。
注意:
mysql_fetch_array() 函數返回的字段名區分大小寫。
具體開發步驟如下:
1.創建一個PHP動態頁面,命名index.php,在index.php中添加一個表單,一個文本框以及一個提交按鈕,具體代碼如下:
<html> <body> <!--上傳文件表單--> <form method="post" action="" name = form1> <table> <tr> <td width="605" height="51" bgcolor="#CC99FF"> <p align="center">請輸入查詢內容 <input type="text" name="username" id="username" size="25"> <input type="submit" name="Submit" value="查詢"> </p> </td> </tr> </table> </form> </body> </html>
頁面如下:
2.連接到MySQL數據庫服務器。具體代碼如下:
<?php header("Content-Type:text/html; charset=utf-8"); //連接數據庫 $link = mysqli_connect("localhost","root","123456","test")or die("連接數據庫失敗".mysqli_error()); mysqli_query($link,"set names utf-8"); //設置編碼,防止發生亂碼 ?>
3.使用 if 條件語句判斷用戶是否單擊“查詢”按鈕,如果是那麼使用POST 方法接受傳遞過來的信息,執行SQL語句,該查詢語句主要用來實現信息的模糊查詢,查詢結果被賦予變量$sql。然後從數組結果集中獲取信息,具體代碼如下:
//模糊查詢 $sql = mysqli_query($link,"SELECT * FROM login"); $info = mysqli_fetch_array($sql); if($_POST['submit'] == '查詢'){ $username = $_POST['username']; $sql = mysqli_query($link,"SELECT * FROM login WHERE username LIKE '%".trim($username)."%' "); $info = mysqli_fetch_array($sql); }
4.使用 if條件語句對結果集變量$info進行判斷,如果該值爲假,那麼就使用 echo 語句輸出檢索的信息不存在,具體代碼如下:
//判斷結果
if(!$info){ echo "<p align='center' style='color: #FF0000;font-size: 12px'>對不起,查詢的信息不存在</p>"; }
5.使用 do...while 循環語句以表格形式輸出數組結果集$info[]中的信息,一字段的名稱爲索引,使用 echo 語句輸出數組$info[]的信息,具體代碼如下:
//循環輸出結果 do { //do...while 循環 ?> <table> <tr align="left" bgcolor="#FFFFFF"> <td height="20" align="center"><?php echo $info["id"] ?></td> <td height="20" align="center"><?php echo $info["username"] ?></td> <td height="20" align="center"><?php echo $info["password"] ?></td> <td height="20" align="center"><?php echo $info["confirm"] ?></td> <td height="20" align="center"><?php echo $info["email"] ?></td> </tr> </table> <?php }while($info = mysqli_fetch_array($sql));
輸出結果如下:
使用mysql_fetch_row()函數逐行獲取結果集中的每條記錄
<html> <body> <!--上傳文件表單--> <form method="post" action="" name = form1> <table> <tr> <td width="605" height="51" bgcolor="#CC99FF"> <p align="center">請輸入查詢內容 <input type="text" name="username" id="username" size="25"> <input type="submit" name="submit" value="查詢"> </p> </td> </tr> </table> </form> <?php header("Content-Type:text/html; charset=utf-8"); error_reporting(0); //連接數據庫 $link = mysqli_connect("localhost","root","123456","test")or die("連接數據庫失敗".mysqli_error()); mysqli_query($link,"set names utf-8"); //設置編碼,防止發生亂碼 //模糊查詢 $sql = mysqli_query($link,"SELECT * FROM login"); $info = mysqli_fetch_row($sql); if($_POST['submit'] == '查詢'){ $username = $_POST['username']; $sql = mysqli_query($link,"SELECT * FROM login WHERE username LIKE '%".trim($username)."%' "); $info = mysqli_fetch_row($sql); } //判斷結果 if(!$info){ echo "<p align='center' style='color: #FF0000;font-size: 12px'>對不起,查詢的信息不存在</p>"; } //循環輸出結果 do { //do...while 循環 ?> <table> <tr align="left" bgcolor="#FFFFFF"> <td height="20" align="center"><?php echo $info[0] ?></td> <td height="20" align="center"><?php echo $info[1] ?></td> <td height="20" align="center"><?php echo $info[2] ?></td> <td height="20" align="center"><?php echo $info[3] ?></td> <td height="20" align="center"><?php echo $info[4] ?></td> </tr> </table> <?php }while($info = mysqli_fetch_row($sql)); ?> </body> </html>
php連接和操作mysql數據庫超全詳解!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.