$pdo = new PDO(“mysql:host=localhost; dbname=db_name”,username,password);
$pdo -> beginTransaction()
$pdo -> rollback()
$pdo -> commit()
$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1)
$pdo -> prepare($sql)
$stmt -> execute()
php操作MySQL資料庫之PDO方式
這篇文章主要介紹了關於php操作MySQL資料庫之PDO方式,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
##基本上使用1)連接資料庫
$pdo = new PDO(“mysql:host=localhost; dbname=db_name”,username,password);
登入後複製
2)執行SQL語句$pdo = new PDO(“mysql:host=localhost; dbname=db_name”,username,password);
$pdo -> query() 针对返回有结果的操作 适用于SELECT
$pdo -> exec() 针对没有返回结果的操作 适用于增删改
登入後複製
3)取得結果集(查詢操作專有)$pdo -> query() 针对返回有结果的操作 适用于SELECT $pdo -> exec() 针对没有返回结果的操作 适用于增删改
$stmt -> fetch($mode) 获取一条数据
$stmt -> fetchAll($mode) 获取所有数据
登入後複製
mode可選擇PDO::FETCH_ASSOC,結果變成$stmt -> fetch($mode) 获取一条数据 $stmt -> fetchAll($mode) 获取所有数据
關聯數組。
實例<?php
// PDO操作数据库例子(查询)
header("content-type:text/html;charset=utf-8");
// 连接数据库
$dsn = "mysql:host=localhost; dbname=test";
$pdo = new PDO($dsn,'root','123456789');
/*********** 执行SQL语句 *************/
// 设置字符集
$pdo -> exec("set names utf8");
$sql = "SELECT * FROM users";
$stmt = $pdo -> query($sql);
// 获取结果集
$data = $stmt -> fetchAll(PDO::FETCH_ASSOC);
var_dump($data);
登入後複製
<?php // PDO操作数据库例子(查询) header("content-type:text/html;charset=utf-8"); // 连接数据库 $dsn = "mysql:host=localhost; dbname=test"; $pdo = new PDO($dsn,'root','123456789'); /*********** 执行SQL语句 *************/ // 设置字符集 $pdo -> exec("set names utf8"); $sql = "SELECT * FROM users"; $stmt = $pdo -> query($sql); // 获取结果集 $data = $stmt -> fetchAll(PDO::FETCH_ASSOC); var_dump($data);
事務控制1)開啟交易
$pdo -> beginTransaction()
登入後複製
2)事務回滾$pdo -> beginTransaction()
$pdo -> rollback()
登入後複製
3)事務提交$pdo -> rollback()
$pdo -> commit()
登入後複製
4)自動提交$pdo -> commit()
$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1)
登入後複製
實例$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1)
exec("set names utf8");
// 开启事务
$pdo -> beginTransaction();
// SQL语句
$sql1 = "UPDATE users SET `money`=`money`+1 WHERE `id` = 1 ";
$r1 = $pdo -> exec($sql1);
$sql2 = "UPDATE users SET `money`=`money`-1 WHERE `id` = 12 ";
$r2 = $pdo -> exec($sql2);
// 做判断
if($r1 > 0 && $r2 > 0){
$pdo -> commit();
echo '操作成功';
}else{
$pdo -> rollback();
echo '操作失败';
}
$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1);
登入後複製
exec("set names utf8"); // 开启事务 $pdo -> beginTransaction(); // SQL语句 $sql1 = "UPDATE users SET `money`=`money`+1 WHERE `id` = 1 "; $r1 = $pdo -> exec($sql1); $sql2 = "UPDATE users SET `money`=`money`-1 WHERE `id` = 12 "; $r2 = $pdo -> exec($sql2); // 做判断 if($r1 > 0 && $r2 > 0){ $pdo -> commit(); echo '操作成功'; }else{ $pdo -> rollback(); echo '操作失败'; } $pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1);
預處理1)$sql = “???”SQL語句的VALUE裡面的參數,使用問號來代替。 2)建立預編譯物件
$pdo -> prepare($sql)
登入後複製
3)參數賦值$pdo -> prepare($sql)
$stmt -> bindParam(参数位置 | 参数伪名, 变量名(需要有值))
$stmt -> bindValue(参数参数位置 | 参数伪名, 变量名(需要有值)| 具体的值)
登入後複製
$stmt -> bindParam(参数位置 | 参数伪名, 变量名(需要有值)) $stmt -> bindValue(参数参数位置 | 参数伪名, 变量名(需要有值)| 具体的值)
$stmt -> bindParam詳解:
$sql = "UPDATE users SET `money`=100 WHERE id = :num "; // 注意,这里必须先给$num赋值 $num = 3; $stmt -> bindParam(":num",$num); 另一种形式(占位符变成问号) $sql = "UPDATE users SET `money`=100 WHERE id = ? "; // 注意,这里必须先给$num赋值 $num = 3; $stmt -> bindParam(":num",$num);
$stmt -> bindValue詳解
在使用bindValue綁定變數後,即使執行execute之前改變了該變數的值,那麼結果也不會改變。 詳細請看這裡這裡寫連結內容4)執行程式碼$stmt -> execute()
登入後複製
5)取得結果(查詢操作專有)$stmt -> execute()
$stmt -> fetch($mode) 获取一个结果
$stmt -> fetchAll($mode) 获取所有结果
登入後複製
mode可選擇PDO::FETCH_ASSOC,結果變成$stmt -> fetch($mode) 获取一个结果 $stmt -> fetchAll($mode) 获取所有结果
關聯陣列。
實例 exec("set names utf8");
// SQL语句
$sql = "SELECT * FROM users WHERE id > :num ";
// 创建预编译对象
$stmt = $pdo -> prepare($sql);
// 参数绑定
$num = 3;
$stmt -> bindParam(":num",$num);
// 执行SQL语句
$stmt -> execute();
// 获取结果集
$data = $stmt -> fetchAll(PDO::FETCH_ASSOC);
var_dump($data);
登入後複製相關推薦:
exec("set names utf8"); // SQL语句 $sql = "SELECT * FROM users WHERE id > :num "; // 创建预编译对象 $stmt = $pdo -> prepare($sql); // 参数绑定 $num = 3; $stmt -> bindParam(":num",$num); // 执行SQL语句 $stmt -> execute(); // 获取结果集 $data = $stmt -> fetchAll(PDO::FETCH_ASSOC); var_dump($data);
以上是php操作MySQL資料庫之PDO方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

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

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。

MySQL和MariaDB的主要區別在於性能、功能和許可證:1.MySQL由Oracle開發,MariaDB是其分支。 2.MariaDB在高負載環境中性能可能更好。 3.MariaDB提供了更多的存儲引擎和功能。 4.MySQL採用雙重許可證,MariaDB完全開源。選擇時應考慮現有基礎設施、性能需求、功能需求和許可證成本。

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

MySQL和phpMyAdmin可以通過以下步驟進行有效管理:1.創建和刪除數據庫:在phpMyAdmin中點擊幾下即可完成。 2.管理表:可以創建表、修改結構、添加索引。 3.數據操作:支持插入、更新、刪除數據和執行SQL查詢。 4.導入導出數據:支持SQL、CSV、XML等格式。 5.優化和監控:使用OPTIMIZETABLE命令優化表,並利用查詢分析器和監控工具解決性能問題。

AI可以幫助優化Composer的使用,具體方法包括:1.依賴管理優化:AI分析依賴關係,建議最佳版本組合,減少衝突。 2.自動化代碼生成:AI生成符合最佳實踐的composer.json文件。 3.代碼質量提升:AI檢測潛在問題,提供優化建議,提高代碼質量。這些方法通過機器學習和自然語言處理技術實現,幫助開發者提高效率和代碼質量。

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

要安全、徹底地卸載MySQL並清理所有殘留文件,需遵循以下步驟:1.停止MySQL服務;2.卸載MySQL軟件包;3.清理配置文件和數據目錄;4.驗證卸載是否徹底。
