<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ``` $dbms='mysql'; //數據庫類型 $host='localhost'; //數據庫主機名 $dbName='dbname'; //使用的數據庫 $user='root'; //數據庫連接用戶名 $pass=''; //對應的密碼 $dsn="$dbms:host=$host;dbname=$dbName"; try { //第四各參數可省略 這里是長連接+錯誤模式為不現實錯誤 1為拋出警告 2為拋出異常 //PDO::ATTR_ERRMODE=>0 也可以寫作PDO::ATTR_ERRMODE=>PDO::ERRMODE_SIENT //也可以單獨設置: ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true,PDO::ATTR_ERRMODE=>2)); //初始化一個PDO對象 echo "連接成功<br/>"; } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>"); } try{ $sql='SELECT * from o2o_user WHERE id<11'; $res=$pdo->query($sql); /* foreach ($res as $key => $row) { print_r($row); //你可以用 echo($GLOBAL); 來看到這些值 //打印出來后數據就從內存中釋放出來啦所以下面在用fetchAll的話數組是空的 } //或者 while($row = $res->fetch(PDO::FETCH_ASSOC)){ print_r($row); } */ //我們可以改變默認的數據提取模式 設置之后默認的PDO::FETCH_BOTH變成PDO::FETCH_ASSOC啦 $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $data=$res->fetchAll();//返回二維數組 //或者 $data=$res->fetchAll(PDO::FETCH_ASSOC);//返回二維數組 $time=time(); $sql="update o2o_user SET mobile='15632713876',update_time={$time} WHERE id=11"; $res=$pdo->exec($sql);//成功返回行數 //事物 //使用事務之前,要先關閉自動提交。不關閉的話,出現異常的時候沒法回滾。 //據手冊描述,ATTR_AUTOCOMMIT屬性只在mysql,OCI(oracle),firebird三種數據庫中可用 $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);//關閉事物自動提交功能 不加這個也一樣可以回滾!不明白? $pdo->beginTransaction();//開啟事務 $stmt=$pdo->prepare("update money SET money=money-? WHERE id=?"); /*-------------------------?第一種綁定方式--------------------------------------------- $data1=[1000,1]; $res1=$stmt->execute($data1);//成功返回行數 -------------------------------------------------------------------------------------*/ /*-------------------------?第二種綁定方式--------------------------------------------- $stmt->bindvalue(1,1000);//這里的1代表第一個? $stmt->bindvalue(2,1);////這里的2代表第二個? $res1=$stmt->execute(); -------------------------------------------------------------------------------------*/ /*---------------------------?第三種綁定方式-----------------------------------------*/ $num=1000;//由于是bindParam綁定參數的形式所以這個變量在哪申明都行就是不能在execute以下 $id=1; $stmt->bindParam(1,$num,PDO::PARAM_INT); $stmt->bindParam(2,$id,PDO::PARAM_INT); $res1=$stmt->execute(); $stmt=$pdo->prepare("update money SET money=money+:num WHERE id=:id"); /*---------------------------:第一種綁定方式------------------------------------------- $data2=['num'=>1000,'id'=>2];//與?不同的是這里必須是關聯數組 $res2=$stmt->execute($data2);//成功返回行數 -------------------------------------------------------------------------------------*/ /*---------------------------:第二種綁定方式------------------------------------------- $stmt->bindvalue(':num',1000);//這里不再是代表第幾個參數的索引而是預處理的值代替 $stmt->bindvalue(':id',2); $res2=$stmt->execute(); -------------------------------------------------------------------------------------*/ /*---------------------------:第三種綁定方式-----------------------------------------*/ $num = 1000; $id = 2; $stmt->bindParam(':num', $num,PDO::PARAM_INT); $stmt->bindParam(':id', $id,PDO::PARAM_INT); $res2=$stmt->execute();//成功返回行數 /*-----------------------------------------------------------------------------------*/ if ($res1>0 && $res2>0) { echo $res1.$res2; }elseif($res1==0){ throw new PDOException("轉賬失敗"); }elseif($res2==0){ throw new PDOException("轉賬失敗"); }else{ throw new PDOException("未知錯誤"); } $pdo->commit(); $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1); $pdo = null; }catch(PDOException $e){ $pdo->rollBack(); die ("Error!: " . $e->getMessage() . "<br/>"); } /* PDO::beginTransaction — 啟動一個事務 PDO::commit — 提交一個事務 PDO::rollBack — 回滾一個事務 PDO::inTransaction — 檢查是否在一個事務內 PDO::errorCode — 獲取錯誤碼 PDO::errorInfo — 返回數組形式的錯誤信息 PDO::exec — 增刪改的執行方法,并返回受影響的行數 PDO::query — 查詢語句的執行方法 返回PDOstatement對象 PDO::lastInsertId — 返回最后插入行的ID或序列值 PDO::prepare — 預處理sql語句 返回PDOstatement對象 PDO::quote — 返回添加引號后的字符串—將sql手動轉義. PDO::getAttribute — 取回一個數據庫連接的屬性 PDO::setAttribute — 設置數據庫連接的屬性 PDO::getAvailableDrivers — 返回一個可用驅動的數組 PDO::__construct — 創建一個表示數據庫連接的 PDO 實例 PDOstatement的方法:注意只有query和prepare才能用下面的方法: execute() 執行一條預處理語句 bindparam(標志符,變量,類型常量) 綁定一個參數到變量名 bindvalue(參數標志符,變量,類型常量) 把一個值綁定到參數 fetch(類型常量) 以類型常量指定的格式返回一條記錄 fetchAll(類型常量) 以類型常量指定的格式返回所有記錄 fetchColumn(index) 返回指定索引的單獨一列 rowCount() 獲取查詢數據總條數 bindColumn(列名/號,變量,類型常量) 綁定一個列(字段)到一個php變量 columnCount() 返回結果集中的列數 debugDumpParams() 打印一條sql預處理語句 columnCount() 返回結果集中的列數 debugDumpParams() 返回錯誤代碼 errorCode() 返回數組形式的錯誤信息 errorInfo() 返回一個語句屬性 getAttribute(屬性) 返回一個語句屬性 setAttribute(屬性,屬性值) 設置一個屬性值 fetchObject(返回對象的類名,傳遞構造函數的數組) 從結果集中返回一行數據幫作為對象返回 closeCursor() 關閉游標使語句能被再次執行 getColumnMeta(index) 返回結果中指定一行的元數據 nextRowset() 再一個多行集語句句柄中推進到下一個行集 setFetchMode()為語句設置默認的獲取方式 PDOException 屬性 errorinfo 異常信息 message 用戶自定義異常代碼 code 發生異常的代碼行號 方法 getMessage() 返回異常信息 getPrevious() 返回異常鏈中的前一個異常 getCode() 返回異常代碼號 getFile() 返回反生異常的文件 getLine() 返回發生異常的行號 getTrace() 獲取異常追蹤信息 getTraceString() 以格式化成字符串的getTrace()信息 靜態 __toString() 可輸出的字符串 __clone() */ /* 預定義常量 PDO::PARAM_BOOL (integer) 表示布爾數據類型。 PDO::PARAM_NULL (integer) 表示 SQL 中的 NULL 數據類型。 PDO::PARAM_INT (integer) 表示 SQL 中的整型。 PDO::PARAM_STR (integer) 表示 SQL 中的 CHAR、VARCHAR 或其他字符串類型。 PDO::PARAM_LOB (integer) 表示 SQL 中大對象數據類型。 PDO::PARAM_STMT (integer) 表示一個記錄集類型。當前尚未被任何驅動支持。 PDO::PARAM_INPUT_OUTPUT (integer) 指定參數為一個存儲過程的 INOUT 參數。必須用一個明確的 PDO::PARAM_* 數據類型跟此值進行按位或。 PDO::FETCH_LAZY (integer) 指定獲取方式,將結果集中的每一行作為一個對象返回,此對象的變量名對應著列名。PDO::FETCH_LAZY 創建用來訪問的對象變量名。在 PDOStatement::fetchAll() 中無效。 PDO::FETCH_ASSOC (integer) 指定獲取方式,將對應結果集中的每一行作為一個由列名索引的數組返回。如果結果集中包含多個名稱相同的列,則PDO::FETCH_ASSOC每個列名只返回一個值。 PDO::FETCH_NAMED (integer) 指定獲取方式,將對應結果集中的每一行作為一個由列名索引的數組返回。如果結果集中包含多個名稱相同的列,則PDO::FETCH_ASSOC每個列名 返回一個包含值的數組。 PDO::FETCH_NUM (integer) 指定獲取方式,將對應結果集中的每一行作為一個由列號索引的數組返回,從第 0 列開始。 PDO::FETCH_BOTH (integer) 指定獲取方式,將對應結果集中的每一行作為一個由列號和列名索引的數組返回,從第 0 列開始。 PDO::FETCH_OBJ (integer) 指定獲取方式,將結果集中的每一行作為一個屬性名對應列名的對象返回。 PDO::FETCH_BOUND (integer) 指定獲取方式,返回 TRUE 且將結果集中的列值分配給通過 PDOStatement::bindParam() 或 PDOStatement::bindColumn() 方法綁定的 PHP 變量。 PDO::FETCH_COLUMN (integer) 指定獲取方式,從結果集中的下一行返回所需要的那一列。 PDO::FETCH_CLASS (integer) 指定獲取方式,返回一個所請求類的新實例,映射列到類中對應的屬性名。 注意: 如果所請求的類中不存在該屬性,則調用 __set() 魔術方法 PDO::FETCH_INTO (integer) 指定獲取方式,更新一個請求類的現有實例,映射列到類中對應的屬性名。 PDO::FETCH_FUNC (integer) 允許在運行中完全用自定義的方式處理數據。(僅在 PDOStatement::fetchAll() 中有效)。 PDO::FETCH_GROUP (integer) 根據值分組返回。通常和 PDO::FETCH_COLUMN 或 PDO::FETCH_KEY_PAIR 一起使用。 PDO::FETCH_UNIQUE (integer) 只取唯一值。 PDO::FETCH_KEY_PAIR (integer) 獲取一個有兩列的結果集到一個數組,其中第一列為鍵名,第二列為值。自 PHP 5.2.3 起可用。 PDO::FETCH_CLASSTYPE (integer) 根據第一列的值確定類名。 PDO::FETCH_SERIALIZE (integer) 類似 PDO::FETCH_INTO ,但是以一個序列化的字符串表示對象。自 PHP 5.1.0 起可用。從 PHP 5.3.0 開始,如果設置此標志,則類的構造函數從不會被調用。 PDO::FETCH_PROPS_LATE (integer) 設置屬性前調用構造函數。自 PHP 5.2.0 起可用。 PDO::ATTR_AUTOCOMMIT (integer) 如果此值為 FALSE ,PDO 將試圖禁用自動提交以便數據庫連接開始一個事務。 PDO::ATTR_PREFETCH (integer) 設置預取大小來為你的應用平衡速度和內存使用。并非所有的數據庫/驅動組合都支持設置預取大小。較大的預取大小導致性能提高的同時也會占用更多的內存。 PDO::ATTR_TIMEOUT (integer) 設置連接數據庫的超時秒數。 PDO::ATTR_ERRMODE (integer) 關于此屬性的更多信息請參見 錯誤及錯誤處理 部分。 PDO::ATTR_SERVER_VERSION (integer) 此為只讀屬性;返回 PDO 所連接的數據庫服務的版本信息。 PDO::ATTR_CLIENT_VERSION (integer) 此為只讀屬性;返回 PDO 驅動所用客戶端庫的版本信息。 PDO::ATTR_SERVER_INFO (integer) 此為只讀屬性。返回一些關于 PDO 所連接的數據庫服務的元信息。 PDO::ATTR_CONNECTION_STATUS (integer) PDO::ATTR_CASE (integer) 用類似 PDO::CASE_* 的常量強制列名為指定的大小寫。 PDO::ATTR_CURSOR_NAME (integer) 獲取或設置使用游標的名稱。當使用可滾動游標和定位更新時候非常有用。 PDO::ATTR_CURSOR (integer) 選擇游標類型。 PDO 當前支持 PDO::CURSOR_FWDONLY 和 PDO::CURSOR_SCROLL。一般為 PDO::CURSOR_FWDONLY,除非確實需要一個可滾動游標。 PDO::ATTR_DRIVER_NAME (string) 返回驅動名稱。 使用 PDO::ATTR_DRIVER_NAME 的例子: <?php if (->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') { echo "Running on mysql; doing something mysql specific here\n"; } ?> PDO::ATTR_ORACLE_NULLS (integer) 在獲取數據時將空字符串轉換成 SQL 中的 NULL 。 PDO::ATTR_PERSISTENT (integer) 請求一個持久連接,而非創建一個新連接。關于此屬性的更多信息請參見 連接與連接管理 。 PDO::ATTR_STATEMENT_CLASS (integer) PDO::ATTR_FETCH_CATALOG_NAMES (integer) 將包含的目錄名添加到結果集中的每個列名前面。目錄名和列名由一個小數點分開(.)。此屬性在驅動層面支持,所以有些驅動可能不支持此屬性。 PDO::ATTR_FETCH_TABLE_NAMES (integer) 將包含的表名添加到結果集中的每個列名前面。表名和列名由一個小數點分開(.)。此屬性在驅動層面支持,所以有些驅動可能不支持此屬性。 PDO::ATTR_STRINGIFY_FETCHES (integer) PDO::ATTR_MAX_COLUMN_LEN (integer) PDO::ATTR_DEFAULT_FETCH_MODE (integer) 設置默認的提取模式 自 PHP 5.2.0 起可用。 PDO::ATTR_EMULATE_PREPARES (integer) 自 PHP 5.1.3 起可用。 PDO::ERRMODE_SILENT (integer) 0如果發生錯誤,則不顯示錯誤或異常。希望開發人員顯式地檢查錯誤。此為默認模式。 PDO::ERRMODE_WARNING (integer) 1如果發生錯誤,則顯示一個 PHP E_WARNING 消息。 PDO::ERRMODE_EXCEPTION (integer) 2如果發生錯誤,則拋出一個 PDOException 異常。 PDO::CASE_NATURAL (integer) 保留數據庫驅動返回的列名。 PDO::CASE_LOWER (integer) 強制列名小寫。 PDO::CASE_UPPER (integer) 強制列名大寫。 PDO::NULL_NATURAL (integer) PDO::NULL_EMPTY_STRING (integer) PDO::NULL_TO_STRING (integer) PDO::FETCH_ORI_NEXT (integer) 在結果集中獲取下一行。僅對可滾動游標有效。 PDO::FETCH_ORI_PRIOR (integer) 在結果集中獲取上一行。僅對可滾動游標有效。 PDO::FETCH_ORI_FIRST (integer) 在結果集中獲取第一行。僅對可滾動游標有效。 PDO::FETCH_ORI_LAST (integer) 在結果集中獲取最后一行。僅對可滾動游標有效。 PDO::FETCH_ORI_ABS (integer) 根據行號從結果集中獲取需要的行。僅對可滾動游標有效。 PDO::FETCH_ORI_REL (integer) 根據當前游標位置的相對位置從結果集中獲取需要的行。僅對可滾動游標有效。 PDO::CURSOR_FWDONLY (integer) 創建一個只進游標的 PDOStatement 對象。此為默認的游標選項,因為此游標最快且是 PHP 中最常用的數據訪問模式。 PDO::CURSOR_SCROLL (integer) 創建一個可滾動游標的 PDOStatement 對象。通過 PDO::FETCH_ORI_* 常量來控制結果集中獲取的行。 PDO::ERR_NONE (string) 對應 SQLSTATE '00000',表示 SQL 語句沒有錯誤或警告地成功發出。當用 PDO::errorCode() 或 PDOStatement::errorCode() 來確定是否有錯誤發生時,此常量非常方便。在檢查上述方法返回的錯誤狀態代碼時,會經常用到。 PDO::PARAM_EVT_ALLOC (integer) 分配事件 PDO::PARAM_EVT_FREE (integer) 解除分配事件 PDO::PARAM_EVT_EXEC_PRE (integer) 執行一條預處理語句之前觸發事件。 PDO::PARAM_EVT_EXEC_POST (integer) 執行一條預處理語句之后觸發事件。 PDO::PARAM_EVT_FETCH_PRE (integer) 從一個結果集中取出一條結果之前觸發事件。 PDO::PARAM_EVT_FETCH_POST (integer) 從一個結果集中取出一條結果之后觸發事件。 PDO::PARAM_EVT_NORMALIZE (integer) 在綁定參數注冊允許驅動程序正常化變量名時觸 */ ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看