php學習筆記(二十二)PDO的安裝和初步使用

來源:互聯網
上載者:User
<?php /** * php data object * 資料庫訪問抽象層 * 基於驅動的 *  * 1.安裝pdo * linux:--with-pdo-mysql=/user/mysql * window:1.安裝pdo的擴充:php_pdo.dll;2.安裝所需資料庫的驅動,例如:php_pdo_mysql.dll和php_pdo_sqlite.dll *  * 2.phpinfo.php檢查是否存在PDO函數庫 *  * 3.使用pdo * PDO類:與資料庫連接有關的類 * PDOStatement:準備語句,處理結果集(預先處理) * PDOException: * 很多常量 *  * 4.建立PDO對象 *  * 5.執行sql * 執行sql語句:exec、query、prepare * query:執行有結果集的,即select語句 * exec:用來執行有影響行數的,即:insert、update、delete * prepare:預先處理 *  * 6.交易處理 *///找到資料庫驅動;可以將dsn放入本地或者遠程檔案當中(dsn.ini);//也可以寫在php設定檔當中:pdo.dsn.mysqldsn = mysql:host=localhost;dbname=hibernate//$oracleDsn = "oci:dbname=//localhost:3306/databasename";$dsn = "mysql:host=localhost;dbname=hibernate";$username = "root";$passwd = "root";//調優用的數組//getAttribute擷取調優的屬性的這隻自動認可為假//也可以建立之後再設定:$pdo->setAttribute($attribute, $value);$options = array(PDO::ATTR_AUTOCOMMIT=>1);try {$pdo = new PDO($dsn, $username, $passwd, $options);//$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);//設定錯誤報表模式//PDO::ERRMODE_EXCEPTION即使是警告也會顯示是異常$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch (PDOException $e){echo "資料庫連接失敗".$e->getMessage();exit;}////echo $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT)."<br>";//echo $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION)."<br>";//echo $pdo->getAttribute(PDO::ATTR_SERVER_INFO)."<br>";//echo $pdo->getAttribute(PDO::ATTR_SERVER_VERSION)."<br>";//echo $pdo->getAttribute(PDO::ATTR_DRIVER_NAME)."<br>";/** * 更新操作 * Enter description here ... * @var unknown_type */$update = "update users set name = 'budi' where id > 12";//更新操作try{//返回影響的行數$num = $pdo->exec($update);echo "最後插入的自動成長的id".$pdo->lastInsertId();}catch (PDOException $e){echo $e->getMessage();}if ($num){echo "執行成功";echo $num ."<br>";}else{echo $pdo->errorCode()."<br>";echo $pdo->errorInfo();}/** * 查詢操作 * Enter description here ... * @var unknown_type */$select = "select * from users where id < 12";//查詢操作try{//返回影響的行數$stmt = $pdo->query($select);foreach ($stmt as $row){print_r($row)."<br>";}}catch (PDOException $e){echo $e->getMessage();}/** * 交易處理機制 * 1.關閉自動認可 * 2.開啟事務 * 3.執行語句 * 4.提交更新 */try {//關閉自動認可$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);//開啟事務$pdo->beginTransaction();$price = 500.00;$sql = "update users set price=price+{$price} where id = 2";$pdo->exec($sql);$sql = "update users set price=price+{$price} where id = 3";$pdo->exec($sql);//提交更新$pdo->commit();}catch (PDOException $e){echo $e->getMessage();//復原事務$pdo->rollBack();}?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.