001 - PDO 用法詳細解析
本篇介紹的內容是PDO用法詳細解析,現在分享給大家。有需要的朋友可以參考一下
《PDO》 41、作用 :能够解决用户在需要使用不同的数据库的时候进行来回的切换,PDO能够自动的进行数据库的切换。 42、使用PDO a)Php.ini文件找开启PDO扩展 43、使用PDO操作数据库基本步骤 a)连接认证 i.$pdo = new PDO(“mysql:host=localhost;port=3306;dbname=project”,”root”,”root”); ii.dbname 是进入的数据库 b)组织SQL语句 i.$sql = “show tables”; c)发送SQL语句,接收执行结果 i.$stmt = $pdo->query( $sql ); d)从结果集中获取数据 i.$stmt->fetch(); 44、PDO常用函数 a)stdClass 标准类 空类 b)PDO: i.exec( $sql ); 执行SQL语句,返回受影响的行数 (用于 增删改) ii.$stmt = query( $sql ); 执行SQL语句,返回PDOStatement对象 (用于 查) c)PDOStatement(结果集) i.$stmt->fetch( ); 返回一个关联数组+索引数组的集合 1.参1 PDO::FETCH_ASSOC 只返回关联数组 2.参2 PDO::FETCH_NUM 只返回索引数组 ii.$stmt->fetchAll() 获取结果集所有内容(参数同fetch()) iii.返回一个对象Object 1.class Persion{ } 2.$stmt->fetchObject( Persion) iv.bindColumn 和 fetch 绑定一列到一个变量 1.$stmt->bindColumn(‘s_name’,$name); 2.$stmt->bindColumn( 3 ,$number); //注意:索引从1开始 3.$stmt->fetch( ); 4.echo $name,$number d)PDO预处理 i.:s_name 这些 可以全用 ? 号代替(绑定数据时 就用索引值); ii.使用数组指定预处理变量 1.步骤: a)$sql = “insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)”; //sql b)$stmt = $pdo->prepare( $sql ); //发送预处理 c)给预处理绑定数据 i.$arr = array( ii. ‘:s_name’=>’房祖名’, iii. ‘:s_num’=>’itcast0001’, iv. ‘:s_gender’=>’男’, v. ‘:s_age’=>’28’, vi. ‘:c_id’=>’2’, vii.) d)$stmt->execute( $arr ); //执行预处理 iii.通过绑定变量的形式 1.步骤 a)$sql = “insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)”; //sql b)$stmt = $pdo->prepare( $sql ); //发送预处理 c)给预处理绑定数据 i.$name = “李莫愁”; ii.$num= “itcast0002”; iii.$gender = “女”; iv.$age = “30”; v.$c_id = “3”; vi.//将变量绑定给预处理 vii.$stmt->bindParam(‘:s_name’,$name); viii.$stmt->bindParam(‘:s_num’,$num); ix.$stmt->bindParam(‘:s_gender’,$gender); x.$stmt->bindParam(‘:s_age’,$age); xi.$stmt->bindParam(‘:c_id’,$c_id); d)$stmt->execute( ); //执行预处理 e)PDO事务处理 i.事务处理就是 增删改 ii.注意:数据表的存储引擎必须是 innoDB iii.事务处理流程 1.$pdo = new PDO(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’); //连接认证 2.$res = $pdo->beginTransaction(); //开启事务 3.事务处理 a)$sql = “updata pro_student set s_age=28 where s_id=20”; b)$lines = $pdo->exec( $sql ); //返回受影响的行数 c)$sql = “select * from pro_student where s_id=20”; d)$stmt = $pdo->query( $sql ); e)$stmt->fetch(PDO::FETCH_ASSOC); 4.提交事务 a)if( $links ){ b) $pdo->commit(); //更新成功 c)}else{ d) $pdo->rollBack(); //更新失败 回滚数据 e)} f)PDO 属性设置 i.设置PDO在处理数据的过程中采用什么方式去处理 ii.PDO::getAttribute(); //获取属性 iii.PDO::setAttribute(); //设置属性 iv.示例: 1.$pdo = new PD(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’); //连接认证 2.$peo->getAttrbute(PDO::ATTR_AUTOCOMMIT); //获取 自动提交属性 3.$pdo->setAttrbute(PDO::ATTR_AUTOCOMMIT,0) //设置 关闭自动提交 v.参数记忆: 1.PDO::ATTR_CASE 强制列名为指定的大小写 a)PDO::CASE_LOWER 强制小写 b)PDO::CASE_UPPER 强制大写 vi...... 更多请参考手册 ...... g)PDO异常处理 i.try{ ii. //设置错误处理模式(必须设置才能生效) iii. $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); iv. //一旦出错立即进入catch语句 v.}catch(PDOException $e){ vi. $e->getTrace(); //获取完整的错误数据 vii. $e->getFile(); //获取错误文件 viii. $e->getLine(); //获取错误行号 ix. $e->getMessage(); //获取错误原因 x.} h)反射: i.反射就是将其他类的结构给反应出来,从而可以对类的结构进行了解便于对类的使用 ii.Reflection iii.reflectionClass::export(要反射的类名) iv.调用reflectionClass的静态方法 v.var_dump( reflectionClass::export(‘PDO’) ); vi vii.$rc = new ReflectionClass(‘PDO’); //创建ReflectionClass对象 viii.var_dump( $rc->getProperties() ); //获取全部属性 ix.var_dump( $rc->getMothods() ); //获取全部方法 x.var_dump( $rc->getConstants() ); //获取全部常量
以上是001 - PDO 用法詳細解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

Oracle錯誤3114詳解:如何快速解決,需要具體程式碼範例在Oracle資料庫開發與管理過程中,我們常常會遇到各種各樣的錯誤,其中錯誤3114是比較常見的一個問題。錯誤3114通常表示資料庫連線出現問題,可能是網路故障、資料庫服務停止、或連接字串設定不正確等原因導致的。本文將詳細解釋錯誤3114的產生原因,以及如何快速解決這個問題,並附上具體的程式碼

WPS是一款常用的辦公室軟體套件,其中的WPS表格功能被廣泛用於資料處理和計算。在WPS表格中,有一個非常有用的函數,即DATEDIF函數,它用於計算兩個日期之間的時間差。 DATEDIF函數是英文單字DateDifference的縮寫,它的語法如下:DATEDIF(start_date,end_date,unit)其中,start_date表示起始日期

【PHP中點的意義和用法解析】在PHP中,中點(.)是常用的運算符,用來連接兩個字串或物件的屬性或方法。在本文中,我們將深入探討PHP中點的意義和用法,並透過具體的程式碼範例加以說明。 1.連接字串中點運算子.在PHP中最常見的用法是連接兩個字串。透過將.放置在兩個字串之間,可以將它們拼接在一起,形成一個新的字串。 $string1=&qu

Wormhole在區塊鏈互通性方面處於領先地位,專注於創建有彈性、面向未來的去中心化系統,優先考慮所有權、控制權和無需許可的創新。這個願景的基礎是對技術專業知識、道德原則和社群一致性的承諾,旨在以簡單、清晰和廣泛的多鏈解決方案套件重新定義互通性格局。隨著零知識證明、擴容方案和功能豐富的Token標準的興起,區塊鏈變得更加強大,而互通性也變得越來越重要。在這個不斷創新的應用程式環境中,新穎的治理系統和實用功能為整個網路的資產帶來了前所未有的機會。協議建構者現在正在努力思考如何在這個新興的多鏈

MySQL中的ISNULL()函數是用來判斷指定表達式或列是否為NULL的函數。它傳回一個布林值,如果表達式為NULL則回傳1,否則回傳0。 ISNULL()函數可以在SELECT語句中使用,也可以在WHERE子句中進行條件判斷。 1.ISNULL()函數的基本語法:ISNULL(expression)其中,expression是要判斷是否為NULL的表達式或

Win11新功能解析:跳過登入微軟帳號的方法隨著Windows11的發布,許多用戶發現其帶來了更多的便利性和新功能。然而,有些用戶可能不喜歡將其係統與微軟帳戶綁定,希望跳過這一步驟。本文將介紹一些方法,幫助使用者在Windows11中跳過登入微軟帳戶,並實現更私密、更自主的使用體驗。首先,讓我們來了解為什麼有些用戶不願意登入微軟帳號。一方面,一些用戶擔心他們

由於篇幅限制,以下是一個簡短的文章:Apache2是常用的Web伺服器軟體,而PHP是廣泛使用的伺服器端腳本語言。在建置網站過程中,有時會遇到Apache2無法正確解析PHP檔案的問題,導致PHP程式碼無法執行。這種問題通常是因為Apache2沒有正確配置PHP模組,或是PHP模組與Apache2的版本不相容所導致的。解決這個問題的方法一般有兩種,一種是

CSS中Transform的用法CSS的Transform屬性是一種非常強大的工具,可以對HTML元素進行平移、旋轉、縮放和傾斜等操作。它可以大大改變元素的外觀,使網頁更有創意和動態。在本文中,我們將詳細介紹Transform的各種用法,並提供具體的程式碼範例。一、平移(Translate)平移是指將元素沿著x軸和y軸移動指定的距離。它的語法如下:tran
