php資料庫連接pdo
這個是資料庫用戶許可權配置不對,查一下你資料庫的版本和平台,。Linux平台和windows平台的修改方法不太一樣,不過都要登陸到mysql的後台,用root用戶來修改,修改後重新啟動mysql服務。
對於這種Php的訪問, 建議創建一個普通用戶,不要用root直接連接,root一般是管理員的身份,許可權過於大,而在編碼中會露出它的密碼,是一個不好的習慣。
② php使用pdo連接資料庫時,其中有個屬性是長連接,請問設置了這個屬性有啥好處與壞處
如果操作這個數據的人不多,並你進行長連接的連接資源使用很頻繁的話使用長連接。這樣速度比較快。
顧名思義,長連接就是一直連接從未斷開。你應該清楚資料庫連接有的是限定連接個數的。你一直連接就佔用了一個連接資源。如果連接這個資料庫的人不多的話,這樣沒問題,還能加快速度,你每次操作資料庫的時候不用在進行連接操作。這樣會加快效率。
如果這個資料庫使用的人比較多的話,最好使用短鏈接,這樣用完就釋放。不會一直占著連接資源。導致其他人想用都連接不上。
③ PHP使用pdo連接access資料庫並循環顯示數據操作示例
本文實例講述了PHP使用pdo連接access資料庫並循環顯示數據操作。分享給大家供大家參考,具體如下:
PDO連接與查詢:
try
{
$conn
=
new
PDO("odbc:driver={microsoft
access
driver
(*.mdb)};
dbq=".realpath("MyDatabase.mdb"))
or
die("鏈接錯誤!");
//echo
"鏈接成功!";
}
catch(PDOException
$e){
echo
$e->getMessage();
}
$sql
=
"select
*
from
users";
1.
foreach()方法
foreach
($conn->query($sql)
as
$row)
{
$row["UserID"];
$row["UserName"];
$row["UserPassword"];
}
2.
while()方法
$rs
=
$conn->query($sql);
$rs->setFetchMode(PDO::FETCH_NUM);
while($row=$rs->fetch()){
$row[0];
$row[1];
$row[2];
}
php使用PDO抽象層獲取查詢結果,主要有三種方式:
(1)PDO::query()查詢。
看下面這段php代碼:
<?php
//PDO::query()查詢
$res
=
$db->query('select
*
from
user');
$res->setFetchMode(PDO::FETCH_NUM);
//數字索引方式
while
($row
=
$res->fetch()){
print_r($row);
}
?>
(2)PDO->exec()處理sql
<?php
//PDO->exec()處理sql
$db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$res
=
$db->exec("insert
into
user(id,name)
values('','php點點通')");
echo
$res;
?>
(3)PDO::prepare()預處理執行查詢
<?php
//PDO::prepare()預處理執行查詢
$res
=
$db->prepare("select
*
from
user");
$res->execute();
while
($row
=
$res->fetchAll())
{
print_r($row);
}
?>
setAttribute()
方法是設置屬性,常用參數如下:
PDO::CASE_LOWER
--
強制列名是小寫
PDO::CASE_NATURAL
--
列名按照原始的方式
PDO::CASE_UPPER
--
強制列名為大寫
setFetchMode方法來設置獲取結果集的返回值的類型,常用參數如下:
PDO::FETCH_ASSOC
--
關聯數組形式
PDO::FETCH_NUM
--
數字索引數組形式
PDO::FETCH_BOTH
--
兩者數組形式都有,這是默認的
PDO::FETCH_OBJ
--
按照對象的形式,類似於以前的
mysql_fetch_object()
對上面總結如下:
查詢操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO->query()
—
處理一條SQL語句,並返回一個「PDOStatement」
PDO->exec()
—
處理一條SQL語句,並返回所影響的條目數
PDO::prepare()主要是預處理操作,需要通過$rs->execute()來執行預處理裡面的SQL語句
最後介紹兩個常用的函數:
(1)fetchColumn()獲取指定記錄里一個欄位結果,默認是第一個欄位!
<?php
$res
=
$db->query('select
*
from
user');
//獲取指定記錄里第二個欄位結果
$col
=
$res->fetchColumn(1);
echo
$col;
?>
(2)fetchAll(),從一個結果集中獲取數據,然後存放在關聯數組中
<?php
$res
=
$db->query('select
*
from
user');
$res_arr
=$res->fetchAll();
print_r($res_arr);
?>
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP基於pdo操作資料庫技巧總結》、《php+Oracle資料庫程序設計技巧總結》、《PHP+MongoDB資料庫操作技巧大全》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:PHP使用PDO連接ACCESS資料庫PHP資料庫鏈接類(PDO+Access)實例分享php中mysql連接方式PDO使用詳解關於php連接mssql:pdo
odbc
sql
serverPhp中用PDO查詢Mysql來避免SQL注入風險的方法php中在PDO中使用事務(Transaction)全新的PDO資料庫操作類php版(僅適用Mysql)php使用pdo連接並查詢sql資料庫的方法php使用pdo連接mssql
server資料庫實例PHP實現PDO的mysql資料庫操作類
④ php使用pdo連接mysql資料庫如何設置發送的字元集
和Mysql類裡面的用法一樣,他們只過不過是我們鏈接資料庫的中間橋梁變了,本質並沒有變,還是對資料庫進行操作,而操作的要利用SQL語句,所以這里可以用同樣的mysql語句即可,只不過執行函數變了!在mysql類裡面,我們用mysql_query(「SET NAMES gbk」);設置字元集編碼為gbk啦!在PDO裡面我們用$db->query("SET NAMES gbk");當然也有其他的函數也可以。http://wenku..com/view/57270c36a32d7375a4178002.html這里有網路文庫關於PDO的解釋和簡單使用!
⑤ php連接資料庫關於PDO類和PDOStatement類的區別是什麼
這代表兩個不同的對象,看一下PDO::query()的定義:
public PDOStatement PDO::query ( string $statement )
可以知道query返回的結果是PDOStatement實例對象,那麼你至少可以知道PDOStatement可以用來操作結果集了。
看一下PDOStatement類有哪些方法:
http://php.net/manual/zh/class.pdostatement.php
發現有fetch,fetchAll等熟悉的功能,不是么?
然後再來看看PDO::prepare()方法
public PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )
它也是返回的PDOStatement,按照手冊的說法,PDOStatement代表一條預處理語句,並在該語句被執行後代表一個相關的結果集。
也就是說,如果你通過PDO::query()直接查詢,那麼返回的PDOStatement就表示一個結果集。
如果你通過PDO::prepare()查詢,實際上並未執行sql,而是得到一個預處理語句(PDOStatement),然後你調用PDOStatement::execute()方法真正執行。