1. 程式人生 > >PHP16 PHP訪問MySQL

PHP16 PHP訪問MySQL

result cells 地址 信息管理 com 學習 select ali SQ

學習要點

  • PHP訪問MySQL配置
  • PHP訪問MySQL函數介紹
  • 足球賽程信息管理

PHP訪問MySQL配置

PHP.ini配置文件確認以下配置已經打開

extension=php_mysql.dll PHP5之前訪問數據庫模塊

extension=php_mysqli.dll PHP5之後訪問數據庫模塊

通過getinfo()獲得支持信息確認PHP是否已支持訪問MySQL

技術分享圖片

技術分享圖片

PHP訪問MySQL函數介紹

mysqli_connect() 函數

  • 函數說明

    打開一個到 MySQL 服務器的新的連接。

  • 語法格式

    mysqli_connect(host,username,password,dbname,port,socket);

  • 參數說明

參數

描述

host

可選。規定主機名或 IP 地址。

username

可選。規定 MySQL 用戶名。

password

可選。規定 MySQL 密碼。

dbname

可選。規定默認使用的數據庫。

port

可選。規定嘗試連接到 MySQL 服務器的端口號。

socket

可選。規定 socket 或要使用的已命名 pipe。

  • 返回值

    返回一個代表到 MySQL 服務器的連接的對象,資源類型。

  • 示例代碼

    $link=mysqli_connect(‘localhost‘

,‘root‘,‘rootkit‘,‘myschool‘);

    說明:mysql的默認端口3306,主機地址可以省略端口號,或者省略端口號參數。所以也可以寫成如下形式。

    技術分享圖片

    技術分享圖片

mysqli_query() 函數

  • 函數說明

執行某個針對數據庫的查詢。

  • 語法格式

    mysqli_query(connection,query,resultmode);

  • 參數說明

參數

描述

connection

必需。規定要使用的 MySQL 連接。

query

必需,規定查詢字符串。

resultmode

可選。一個常量。可以是下列值中的任意一個:

ü MYSQLI_USE_RESULT(如果需要檢索大量數據,請使用這個)

ü MYSQLI_STORE_RESULT(默認)

  • 返回值

    針對成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查詢,將返回一個 mysqli_result 對象。針對其他成功的查詢,將返回 TRUE。如果失敗,則返回 FALSE。

    特別說明:在 PHP 5.3.0 中新增了異步查詢的功能。

  • 示例代碼
//構建SQL語句字符串

$query="SELECT * FROM student";

//執行SQL語句並返回數組結果集

$result=mysqli_query($link, $query);

  

mysqli_num_rows() 函數

  • 函數說明

    返回結果集中行的數量。

  • 語法格式

    mysqli_num_rows(result);

  • 參數說明

參數

描述

result

必需。規定由 mysqli_query()、mysqli_store_result() 或 mysqli_use_result() 返回的結果集標識符。

  • 返回值

    返回結果集中行的數量。

  • 示例代碼
//獲取記錄數

$rownum=mysqli_num_rows($result);

  

mysqli_fetch_assoc()函數

  • 函數說明

    Fetch a result row as an associative array。

  • 語法格式

    array mysqli_fetch_assoc ( mysqli_result $result );

  • 參數說明

參數

描述

result

Procedural style only: A result set identifier returned by mysqli_query(), mysqli_store_result() or mysqli_use_result().

  • 返回值

    Returns an associative array of strings representing the fetched row in the result set, where each key in the array represents the name of one of the result set‘s columns or NULL if there are no more rows in resultset.

    If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.。

  • 示例代碼
//從數組結果集中返回一行記錄,返回值為關聯數組結構

//mysqli_fetch_object($result)返回對象

$row=mysqli_fetch_assoc($result);

echo $row[‘studentno‘].‘:‘;//通過數據庫字段名確定元素值

echo $row[‘studentname‘]."<br>";   ;

  

mysqli_free_result()函數

  • 函數說明

    釋放結果結果集內存。

  • 語法格式

    mysqli_free_result(result)

  • 參數說明

參數

描述

result

必需。規定由 mysqli_query()、mysqli_store_result() 或 mysqli_use_result() 返回的結果集標識符。

  • 返回值

    沒有返回值。

mysqli_close()函數

  • 函數說明

    關閉先前打開的數據庫連接。

  • 語法格式

    mysqli_close(connection);

  • 參數說明

參數

描述

connection

規定要關閉的 MySQL 連接。

  • 返回值

如果成功則返回 TRUE,如果失敗則返回 FALSE。

完整數據庫訪問步驟

  1. 建立數據連接
  2. 構建SQL語句
  3. 獲取結果集
  4. 處理結果集
  5. 關閉結果集資源
  6. 關閉數據庫連接

完整示例代碼

  • 查詢
// 1、建立和數據庫的連接
$link = mysqli_connect ( ‘127.0.0.1‘, ‘root‘, ‘rootkit‘, ‘football‘ );
if ($link == null) {
	echo ‘數據庫連接建立失敗‘;
}
// 2、設計SQL語句
$query = "SELECT * FROM teaminfo";
// 3、查詢
$result = mysqli_query ( $link, $query );
// 4、處理結果集
$rownum = mysqli_num_rows ( $result ); // 獲取結果集的行數
for($i = 0; $i < $rownum; $i ++) {
	$row = mysqli_fetch_assoc ( $result );
	echo $row [‘id‘] . ‘===‘ . $row [‘teamname‘] . ‘<br>‘;
}
// 5、釋放結果集
mysqli_free_result ( $result );
// 6、關閉數據庫連接
mysqli_close ( $link );

  

  • 添加
// 1、建立和數據庫的連接
$link = mysqli_connect ( ‘127.0.0.1‘, ‘root‘, ‘rootkit‘, ‘football‘ );
if ($link == null) {
	echo ‘數據庫連接建立失敗‘;
}
// 2、設計SQL語句
$query = "INSERT INTO teaminfo(teamname) VALUES(‘廈門國貿‘)";
// 3、查詢
$result = mysqli_query ( $link, $query );
// 4、處理結果集
if ($result) {
	echo ‘添加球隊信息成功!‘;
} else {
	echo ‘添加球隊信息失敗!‘;
echo mysqli_error($link);  
// mysqli_free_result($result);
// 6、關閉數據庫連接
mysqli_close ( $link );

  

  • 修改
// 1、建立和數據庫的連接
$link = mysqli_connect ( ‘127.0.0.1‘, ‘root‘, ‘rootkit‘, ‘football‘ );
if ($link == null) {
	echo ‘數據庫連接建立失敗‘;
}
// 2、設計SQL語句
$query = "UPDATE teaminfo SET teamname=‘廈門七匹狼‘ WHERE id=19";
// 3、查詢
$result = mysqli_query ( $link, $query );
// 4、處理結果集
if ($result) {
	echo ‘更新球隊信息成功!‘;
} else {
	echo ‘更新球隊信息失敗!‘;
echo mysqli_error($link);
}
// 5、釋放結果集
// mysqli_free_result($result);
// 6、關閉數據庫連接
mysqli_close ( $link );

  

  • 刪除
// 1、建立和數據庫的連接
$link = mysqli_connect ( ‘127.0.0.1‘, ‘root‘, ‘rootkit‘, ‘football‘ );
if ($link == null) {
	echo ‘數據庫連接建立失敗‘;
}
// 2、設計SQL語句
$query = "DELETE FROM teaminfo WHERE id=17";
// 3、查詢
$result = mysqli_query ( $link, $query );
// 4、處理結果集
if ($result) {
	echo ‘刪除球隊信息成功!‘;
} else {
	echo ‘刪除球隊信息失敗!‘;
echo mysqli_error($link);
}
// 5、釋放結果集
// mysqli_free_result($result);
// 6、關閉數據庫連接
mysqli_close ( $link );

  

上機練習:2018世界杯亞洲區賽程信息管理

使用mysqli實現以下用例:

  1. 實現登陸
  2. 實現添加賽程信息
  3. 實現刪除賽程信息
  4. 實現修改賽程信息
  5. 實現賽程信息的分頁顯示

PHP16 PHP訪問MySQL