這篇文章主要介紹了PHP 操作MySQL,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
#相關mysql影片教學推薦:《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函數mysqli_query 向MySQL資料庫傳送SQL指令去查詢,將MySQL資料庫傳回的結果封裝成物件作為函數的返回值。
語法:$result = mysqli_query(資料庫連線標識,SQL指令);
$result
稱為【結果集】
有兩種結果集,主要區別於目前所執行的SQL指令,是否有資料回傳。
有回傳資料:select、show、desc
mysqli_query 會傳回一個資源類型。執行成功返回結果集,失敗返回false
注意:由於資源類型永遠為真,不能用於判斷是否有數據,只能判斷命令是否執行成功
無回傳資料: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('localhost','root','root','student') or die("数据库连接错误!"); $rs = mysqli_query($conn, 'set names utf8');//设置PHP与MySQL交互默认字符集var_dump($rs); $rs = mysqli_query($conn, 'select * from student'); while ($row = mysqli_fetch_assoc($rs)) { echo "<pre class="brush:php;toolbar:false">"; var_dump($row); echo ""; }
從結果集中得到資料的三個函數:
mysqli_fetch_assoc () 取得一行資料作為【關聯】陣列傳回
mysqli_fetch_row() 取得一行資料作為【索引】陣列傳回
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(資料庫連線標識);
MySQL的字元集
MySQL資料最終是保存在資料庫,表,記錄上的。
資料在真實保存時,受到幾個地方的影響:
欄位的編碼
如果欄位沒有設定編碼,以表格的編碼為準。
如果表沒有設定編碼,則以庫上設定的編碼為準。
如果函式庫沒有設定編碼,則以MySQL伺服器的內建編碼為準。
資料在客戶端展示的編碼 四個地方影響客戶端的展示
伺服器變數(設定項):
character_set_client
伺服器變數(設定項目):
character_set_connection
伺服器變數(設定項):
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;
项目中确保字符编码五个地方统一
MySQL数据库服务器保存数据的编码
设置php与MySQL交互层编码 mysqli_query($conn, 'set names utf8');
PHP与浏览器之间交互的编码 header("Content-type:text/html;charset=utf-8");
HTML meta 标签声明使用编码 <meta charset="UTF-8">
PHP文件保存的编码(在编辑器中设置)
更多mysql相关知识请关注php中文网mysql视频教程频道
相关推荐:
【mysql视频教程】2019年最火的5个mysql视频教程推荐
以上是PHP 操作 MySQL的詳細內容。更多資訊請關注PHP中文網其他相關文章!