PHP自5.5起,已完全廢除mysql擴展,官方推薦使用MySQLI或PDO來取代。這篇文章主要講mysqli的一些基本操作。使用mysqli有兩個風格的寫法,物件式或函數式,下面我們只展示函數式的寫法風格。
資料庫連線
首先肯定需要連接資料庫。在連接資料前,我們需要準備的一般有資料庫的帳號、密碼、連接埠號碼、資料庫名稱。
因為網路原因或其他原因常常會有連接不上資料庫的情況,所以,我們需要做連線失敗的處理。
<?php // 数据库连接 $mysqli = mysqli_connect( 'localhost', 'root', '', 'test' ); if (mysqli_connect_errno()) { throw new Exception('databases connect error:' .mysqli_connect_error()); } // ...一些数据库操作 // 关闭数据库资源 mysqli_close($mysqli);
設定字元集
設定字元集使用mysqli_set_charset();
字元集目前我們大都使用utf8mb4,因為他支援4個位元組長度的字元。他支援一些emoji表情字元。當然如果你不需要支援4位元組字元的話可以選擇使用utf8,因為他比較剩下空間。
mysqli_set_chartset($mysqli, 'utf8mb4');
重新選擇資料庫
資料庫連線後,也可以重新選擇資料庫。
mysqli_select_db($mysqli, '数据库名');
CURD操作
mysqli_query():對資料庫執行一次操作,DDL、DQL 、DML都支援。
mysqli_affected_rows():取得影響記錄行數。
新增資料操作
mysqli_query($mysqli, "INSERT INTO users(username, age, sex) VALUES('周杰伦', 35, '男'), ('谢霆锋', 35, '男')" ); if (mysqli_affected_rows($mysqli) <= 0) { throw new Exception('databases insert error:' . mysqli_error($mysqli)); }
修改資料操作
#這裡面有一個注意點,mysqli_affected_rows回傳的值為0的情況。它更新的資訊與上次完全一樣,這個情況很普遍。比如說在修改的時候,連續點擊了多次修改按鈕。但並不能說明程式碼有問題。所以,跟新增不一樣的是,回傳0也應該是成功狀態。
mysqli_query($mysqli, "UPDATE users SET age=40 WHERE user_id = 1" ); if (mysqli_affected_rows($mysqli) < 0) { throw new Exception('databases update error:' . mysqli_error($mysqli)); }
刪除資料操作
#注意:修改和刪除操作必須加上where條件,不然會修改整張表的數據,後果不堪設想(刪庫跑路o(╯□╰)o)。
mysqli_query($mysqli, "Delete FROM users WHERE user_id = 100" ); if (mysqli_affected_rows($mysqli) <= 0) { throw new Exception('databases delete error:' . mysqli_error($mysqli)); }
查詢操作
當mysqli_query執行的是一條查詢語句時,函數會傳回mysqli_result結果集。
mysqli_fetch_all()從結果集中取得全部資料。此函數第二個參數可以指定傳回資料的格式。分別為:
MYSQLI_NUM:傳回索引陣列
MYSQLI_ASSOC:傳回關聯陣列
#MYSQLI_BOTH :既有索引數組也有關聯數組
另外要注意,對結果集的運算結束後,記得銷毀結果集資源。
// 数据库连接 $mysqli = mysqli_connect( 'localhost', 'root', '', 'test' ); if (mysqli_connect_errno()) { throw new Exception('databases connect error:' .mysqli_connect_error()); } mysqli_set_charset($mysqli, 'utf8mb4'); $result = mysqli_query($mysqli, "SELECT * FROM users" ); if (mysqli_affected_rows($mysqli) < 0) { throw new Exception('databases select error:' . mysqli_error($mysqli)); } $users = mysqli_fetch_all($result, MYSQLI_ASSOC); // 销毁结果集资源 mysqli_free_result($result); // 关闭数据库资源 mysqli_close($mysqli);
以上就是Mysqli基本操作,個人實際學習發展總結,歡迎討論!
以上是Mysqli的基本操作-CURD的學習發展總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在使用PHP编写Web应用程序时,经常会使用MySQL数据库来存储数据。PHP提供了一种与MySQL数据库进行交互的方法,称为MySQLi。然而,有时在使用MySQLi时,会遇到一个错误信息,如以下所示:PHPFatalerror:Calltoundefinedfunctionmysqli_connect()这个错误信息意味着PHP无法找到my

php无法连接mysqli的解决办法:1、打开“php.ini”文件;2、找到“mysqli.reconnect”;3、将“mysqli.reconnect = OFF”改成“mysqli.reconnect = on”即可。

mysql的运行文件是mysqld;mysqld是一个可执行文件,代表着Mysql服务器程序,执行这个文件可以直接启动一个服务器进程;而mysqld_safe是一个启动脚本,它会间接调用mysqld,并且还会顺带启动一个监控进程。

PDOPDO是一个面向对象的数据库访问抽象层,它为PHP提供了一个统一的接口,允许您使用相同的代码与不同的数据库(如Mysql、postgresql、oracle)进行交互。PDO隐藏了底层数据库连接的复杂性,简化了数据库操作。优缺点优点:统一接口,支持多种数据库简化数据库操作,降低开发难度提供预处理语句,提高安全性支持事务处理缺点:性能可能比原生扩展稍低依赖外部库,可能会增加开销演示代码使用PDO连接mysql数据库:$db=newPDO("mysql:host=localhost;dbnam

如果你使用PHP连接MySQL数据库时遇到了以下错误提示:PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused那么你可以尝试按照下面的步骤来解决这个问题。确认MySQL服务是否正常运行首先应该检查MySQL服务是否正常运行,如果服务未运行或者启动失败,就可能会导致连接被拒绝的错误。你可

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

当使用mysqli扩展来连接和操作MySQL数据库时,有时会遇到PHPFatalerror:Calltoundefinedmethodmysqli::prepare()的错误。这个错误通常是由以下几个原因引起的:PHP对mysqli扩展的支持不足;mysqli扩展没有正确加载或配置;PHP代码存在语法错误;MySQL服务器没有正确配置或正在运行

在使用PHP开发网站时,数据库的操作是非常常见的。而MySQLi是PHP中常用的操作MySQL数据库的扩展,提供了比较完备的面向对象接口、过程化接口,以及支持预处理语句的操作。但是有时候我们在使用mysqli的预处理语句时,会遇到这样的错误:PHPFatalerror:Calltoundefinedfunctionmysqli_stmt_bin


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器