首頁  >  文章  >  後端開發  >  PHP 操作 MySQL

PHP 操作 MySQL

不言
不言原創
2018-04-26 15:43:2919359瀏覽

這篇文章主要介紹了PHP 操作MySQL,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

PHP 操作 MySQL

#相關mysql影片教學推薦:《mysql教學

一、使用PHP連線MySQL資料庫

使用PHP函數mysqli_connect 連線上mysql資料庫
語法: $conn = mysqli_connect('主機名稱','使用者名稱','密碼','資料庫名稱',連接埠); 連線成功返回資源對象,失敗返回false
$conn稱為【資料庫連線標識】

header("Content-type:text/html;charset=utf-8");
$conn = @mysqli_connect('localhost','root','root','student') or die("数据库连接错误!");
echo "<pre class="brush:php;toolbar:false">";
var_dump($conn);echo "
";

二、使用PHP存取MySQL資料庫

使用PHP函數mysqli_query 向MySQL資料庫傳送SQL指令去查詢,將MySQL資料庫傳回的結果封裝成物件作為函數的返回值。
語法:$result = mysqli_query(資料庫連線標識,SQL指令);  
$result 稱為【結果集】

#三、結果集的處理

有兩種結果集,主要區別於目前所執行的SQL指令,是否有資料回傳。

  1. 有回傳資料:select、show、desc
    mysqli_query 會傳回一個資源類型。執行成功返回結果集,失敗返回false
    注意:由於資源類型永遠為真,不能用於判斷是否有數據,只能判斷命令是否執行成功

  2. 無回傳資料:insert、delete、update、set、DDL(資料定義語言,如create、alter、drop)
    mysqli_query 會傳回一個布林值。執行成功返回true,失敗返回false

使用mysqli_fetch_assoc 從結果集中讀取數據,將讀取到的數據以關聯數組的形式返回,關聯數組的鍵名就是字段名,同時結果集的指標向下移動一行。
語法:$row = mysqli_fetch_assoc(結果集);

header("Content-type:text/html;charset=utf-8");
$conn = @mysqli_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;root&#39;,&#39;student&#39;) or die("数据库连接错误!");
$rs = mysqli_query($conn, &#39;set names utf8&#39;);//设置PHP与MySQL交互默认字符集var_dump($rs);
$rs = mysqli_query($conn, &#39;select * from student&#39;);
while ($row = mysqli_fetch_assoc($rs)) {    
echo "<pre class="brush:php;toolbar:false">";
    var_dump($row);    
    echo "
"; }

從結果集中得到資料的三個函數:

  1. mysqli_fetch_assoc ()  取得一行資料作為【關聯】陣列傳回

  2. mysqli_fetch_row() 取得一行資料作為【索引】陣列傳回

  3. mysqli_fetch_array()取得一行資料作為【關聯】數組和【索引】數組傳回

#統計結果集中資料的行數
語法:mysqli_num_rows(結果集);  
通常用來判斷結果集中是否有數據,如果大於0就證明有數據,等於0就是沒數據。

echo mysqli_num_rows($conn);

釋放結果集,釋放結果集所佔的記憶體空間
語法:mysqli_free_result(結果集);

mysqli_free_result($rs);

四、關閉資料庫連接

語法:mysqli_close(資料庫連接標識);  
如不使用mysqli_close 關閉資料庫連接,PHP預設在程式碼執行結束後自動關閉。

mysqli_close($conn);

五、其他用法

錯誤訊息
語法:mysqli_error(資料庫連線標識);  
通常用於對錯誤進行偵錯與檢視

echo mysqli_error($conn);

取得剛插入資料的ID
語法:mysqli_insert_id(資料庫連線標識);

#2、專案的字元編碼

MySQL的字元集
MySQL資料最終是保存在資料庫,表,記錄上的。
資料在真實保存時,受到幾個地方的影響:

  • 欄位的編碼

  • ##表的編碼

  • #庫的編碼

  • MySQL伺服器的內建編碼

如果欄位上設定了編碼,請保存資料以字段編碼為準。

如果欄位沒有設定編碼,以表格的編碼為準。
如果表沒有設定編碼,則以庫上設定的編碼為準。
如果函式庫沒有設定編碼,則以MySQL伺服器的內建編碼為準。

以上編碼都是伺服器決定的,只需設定資料庫、表格、欄位的編碼即可。

資料在客戶端展示的編碼 四個地方影響客戶端的展示

  1. 資料在伺服器端儲存的編碼

下面三個與客戶端相關

  1. 客戶端傳送給伺服器端的資料編碼

    伺服器變數(設定項):
    character_set_client

  2. 客戶端與伺服器端之間的連接層所使用的編碼

    伺服器變數(設定項目):
    character_set_connection

  3. 伺服器端傳送給客戶端的處理結果的資料編碼

    伺服器變數(設定項):
    character_set_results#

可以使用 show variables like 'char%'; 在MySQL命令行模式下查看相关变量。
可使用 set指令单独设置,如:set character_set_results=utf8;

set names 是一个快捷操作,同时设置了以上三个服务器变量(配置项),当使用set names utf8;时,相当于

set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_results=utf8;

项目中确保字符编码五个地方统一

  1. MySQL数据库服务器保存数据的编码

  2. 设置php与MySQL交互层编码 mysqli_query($conn, 'set names utf8');

  3. PHP与浏览器之间交互的编码 header("Content-type:text/html;charset=utf-8");

  4. HTML meta 标签声明使用编码 0d94b2dad07259293dd606022eaa23d8

  5. PHP文件保存的编码(在编辑器中设置)

更多mysql相关知识请关注php中文网mysql视频教程频道

相关推荐:

PHP操作JSON方法大全

PHP操作MongoDB实现增删改查功能

【mysql视频教程】2019年最火的5个mysql视频教程推荐

以上是PHP 操作 MySQL的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:php的Xdebug調試下一篇:php的Xdebug調試