php鏈接到mysql數據庫,經典的方式就是使用mysql_connect(),具體代碼以下:php
mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error()); mysql_select_db($db_name);
<?php $link = mysqli_connect("localhost","root","123456","test") or die("Error " . mysqli_error($link)); //鏈接,test爲數據庫的名稱 $query = "SELECT name FROM userInfo" or die("Error in the consult.." . mysqli_error($link));//查詢 $result = mysqli_query($link, $query);//查詢的結果 while($row = mysqli_fetch_array($result)) { echo $row["name"] . "<br>"; } ?>
//mysql mysql_connect("localhost","root","123456"); mysql_select_db("userInfo"); //mysqli mysqli_connect("localhost","root","123456","test");
<?php $mysqli = new mysqli("localhost","root","123456","test") //填寫mysql用戶名、密碼及數據庫的名稱 or die("Could not connect to MySQL server!"); $mysqli->query("set names utf8"); //設置數據庫內數據的編碼,至關於同時設置客戶端、服務器端和腳本編碼方式。 $sql = "select * from userInfo"; $result = $mysqli->query($sql); if($result){ if($result->num_rows>0){ while($row =$result->fetch_array()){//循環輸出結果集中的記錄 echo ($row[0])." "; echo ($row[1])." "; echo ($row[2])." "; echo "<br/>"; } } }else{ echo "Sorry!"; } $result=NULL; $mysqli->close(); ?>
<?php $pdo = new PDO('pgsql:host=192.168.1.111;port=5432;dbname=anydb', 'anyuser', 'pw');//鏈接到數據庫 sleep(5); $stmt = $pdo->prepare('SELECT * FROM sometable'); $stmt->execute(); $pdo = null;//關閉鏈接 ?>
PDO(PHP數據對象),是PHP訪問數據庫的一個輕量級的統一接口。它提供了一個數據訪問抽象層,這也就是說不管什麼數據庫都能用相同的方法進行查詢或讀取。須要注意的是PDO自己並不能實現任何的數據庫功能,而是必需要使用一個具體數據庫的PDO驅動進行訪問數據庫服務。java
二、怎麼用PDO?mysql
這裏咱們就以PHP的黃金搭檔mysql做爲例子看看:sql
PDO_MYSQL:PDO_MYSQL是PDO接口可以完成鏈接mysql數據庫的驅動(注:僅使用於mysql 3.x以上版本)。數據庫
安裝:打開php.ini文件,能夠找到以下代碼,這裏能夠看到mysql的驅動默認已經打開(前面沒有用於註釋的分號),若有鏈接其餘數據庫的須要,自行添加其餘數據庫的驅動程序(取出相應的項前面的分號,沒有的添上)。數組
//各數據庫的PDO驅動 extension=php_pdo.dll extension=php_pdo_firebird.dll //Firebird extension=php_pdo_informix.dll //Informix extension=php_pdo_mssql.dll //sql server extension=php_pdo_mysql.dll //mysql extension=php_pdo_oci.dll //Oracle extension=php_pdo_oci8.dll extension=php_pdo_odbc.dll //DB2 extension=php_pdo_pgsql.dll //PostgreSQL extension=php_pdo_sqlite.dll //SQLite
//鏈接到數據庫 $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
//處理鏈接錯誤 try { $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass); //查詢 foreach($db->query('SELECT * from FOO') as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }
//關閉鏈接 $db = null;
<?php $dbms='mysql'; //數據庫 mysql $host='localhost'; //數據庫主機名 $dbName='test'; //數據庫名 $user='root'; //鏈接用戶名 $pass=''; //密碼 $dsn="$dbms:host=$host;dbname=$dbName"; classdbextendsPDO{ publicfunction__construct(){ try{ parent::__construct("$GLOBALS[dsn]",$GLOBALS['user'],$GLOBALS['pass']); }catch(PDOException$e){ die("Error: ".$e->__toString()."<br/>"); } } publicfinalfunctionquery($sql){ try{ returnparent::query($this->setString($sql)); }catch(PDOException$e){ die("Error: ".$e->__toString()."<br/>"); } } privatefinalfunctionsetString($sql){ echo"處理查詢"; return $sql; } } $db=new db(); $db->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER); foreach($db->query('select * from table_name') as $row){ print_r($row); } $db->exec('delete from table_name where id=11'); ?>
PDO::beginTransaction — 啓動一個事務 PDO::commit — 提交一個事務 PDO::__construct — 建立一個表示數據庫鏈接的 PDO 實例 PDO::errorCode — 獲取跟數據庫句柄上一次操做相關的 SQLSTATE PDO::errorInfo — Fetch extended error information associated with the last operation on the database handle PDO::exec — 執行一條 SQL 語句,並返回受影響的行數 PDO::getAttribute — 取回一個數據庫鏈接的屬性 PDO::getAvailableDrivers — 返回一個可用驅動的數組 PDO::inTransaction — 檢查是否在一個事務內 PDO::lastInsertId — 返回最後插入行的ID或序列值 PDO::prepare — Prepares a statement for execution and returns a statement object PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object PDO::quote — Quotes a string for use in a query. PDO::rollBack — 回滾一個事務 PDO::setAttribute — 設置屬性
PDOStatement::bindColumn — 綁定一列到一個 PHP 變量 PDOStatement::bindParam — 綁定一個參數到指定的變量名 PDOStatement::bindValue — 把一個值綁定到一個參數 PDOStatement::closeCursor — 關閉遊標,使語句能再次被執行。 PDOStatement::columnCount — 返回結果集中的列數 PDOStatement::debugDumpParams — 打印一條 SQL 預處理命令 PDOStatement::errorCode — 獲取跟上一次語句句柄操做相關的 SQLSTATE PDOStatement::errorInfo — 獲取跟上一次語句句柄操做相關的擴展錯誤信息 PDOStatement::execute — 執行一條預處理語句 PDOStatement::fetch — 從結果集中獲取下一行 PDOStatement::fetchAll — 返回一個包含結果集中全部行的數組 PDOStatement::fetchColumn — 從結果集中的下一行返回單獨的一列。 PDOStatement::fetchObject — 獲取下一行並做爲一個對象返回。 PDOStatement::getAttribute — 檢索一個語句屬性 PDOStatement::getColumnMeta — 返回結果集中一列的元數據 PDOStatement::nextRowset — 在一個多行集語句句柄中推動到下一個行集 PDOStatement::rowCount — 返回受上一個 SQL 語句影響的行數 PDOStatement::setAttribute — 設置一個語句屬性 PDOStatement::setFetchMode — 爲語句設置默認的獲取模式。
Exception::getMessage — 獲取異常消息內容。 Exception::getPrevious — 返回異常鏈中的前一個異常 Exception::getCode — 獲取異常代碼 Exception::getFile — 獲取發生異常的程序文件名稱 Exception::getLine — 獲取發生異常的代碼在文件中的行號 Exception::getTrace — 獲取異常追蹤信息 Exception::getTraceAsString — 獲取字符串類型的異常追蹤信息 Exception::toString — 將異常對象轉換爲字符串 Exception::clone — 異常克隆