這種情況說明你的第一個參數錯誤,就是得到的不是資料庫資源。
你需要使用$row = mysql_fetch_row($res)來判斷資源是否存在,這樣就不會報錯。
這種錯誤一般就是我們常說的空引用,就是數據都不存在,你就調用數據的方法就會出問題。
Ⅱ PHP中mysql如何遠程連接資料庫
可以使用pdo進行連接
$dbms='mysql'; //資料庫類型
$host='localhost'; //資料庫主機名
$dbName='test'; //使用的資料庫
$user='root'; //資料庫連接用戶名
$pass=''; //對應的密碼
$dsn="$dbms:host=$host;dbname=$dbName";
try {
$dbh = new PDO($dsn, $user, $pass); //初始化一個PDO對象
echo "連接成功<br/>";
/*你還可以進行一次搜索操作
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //你可以用 echo($GLOBAL); 來看到這些值
}
*/
$dbh = null;
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
//默認這個不是長連接,如果需要資料庫長連接,需要最後加一個參數:array(PDO::ATTR_PERSISTENT => true) 變成這樣:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
Ⅲ PHP連接MySQL資料庫的幾種方式
MySQLi :MySQLi 只針對 MySQL 資料庫,MySQLi 還提供了 API 介面。
PDO (PHP Data Objects):PDO 應用在 12 種不同資料庫中。
Ⅳ php連接wamp下的mysql資料庫,PDO報錯
這個是資料庫用戶許可權配置不對,查一下你資料庫的版本和平台,。Linux平台和windows平台的修改方法不太一樣,不過都要登陸到mysql的後台,用root用戶來修改,修改後重新啟動mysql服務。
對於這種Php的訪問, 建議創建一個普通用戶,不要用root直接連接,root一般是管理員的身份,許可權過於大,而在編碼中會露出它的密碼,是一個不好的習慣。
Ⅳ php連接mysql資料庫原理是怎樣的
現在使用PDO鏈接資料庫的較多
連接是通過創建 PDO 基類的實例而建立的。不管使用哪種驅動程序,都是用 PDO 類名。構造函數接收用於指定資料庫源(所謂的 DSN)以及可能還包括用戶名和密碼(如果有的話)的參數。
連接到 MySQL
<?php
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
?>
如果有任何連接錯誤,將拋出一個 PDOException 異常對象。如果想處理錯誤狀態,可以捕獲異常,或者選擇留給通過 set_exception_handler() 設置的應用程序全局異常處理程序。
處理連接錯誤
<?php
try{
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
foreach($dbh->query('SELECT*fromFOO')as$row){
print_r($row);
}
$dbh=null;
}catch(PDOException$e){
print"Error!:".$e->getMessage()."<br/>";
die();
}
?>
如果應用程序不在 PDO 構造函數中捕獲異常,zend 引擎採取的默認動作是結束腳本並顯示一個回溯跟蹤,此回溯跟蹤可能泄漏完整的資料庫連接細節,包括用戶名和密碼。因此有責任去顯式(通過 catch 語句)或隱式(通過 set_exception_handler() )地捕獲異常。
連接數據成功後,返回一個 PDO 類的實例給腳本,此連接在 PDO 對象的生存周期中保持活動。要想關閉連接,需要銷毀對象以確保所有剩餘到它的引用都被刪除,可以賦一個 NULL 值給對象變數。如果不明確地這么做,PHP 在腳本結束時會自動關閉連接。
關閉一個連接
<?php
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
//在此使用連接
//現在運行完成,在此關閉連接
$dbh=null;
?>
很多 web 應用程序通過使用到資料庫服務的持久連接獲得好處。持久連接在腳本結束後不會被關閉,且被緩存,當另一個使用相同憑證的腳本連接請求時被重用。持久連接緩存可以避免每次腳本需要與資料庫回話時建立一個新連接的開銷,從而讓 web 應用程序更快。
Ⅵ 淺談PHP如何連接到MySql資料庫
也不好多說,發一小段代碼,你參照一下。代碼如下:
try
{
header("Content-type:text/html;charset=utf-8");
$conn=newPDO("mysql:host=localhost;dbname=webdata","user","pwd");
$sth=$conn->prepare("select*frombooks");
$sth->execute();
while($res=$sth->fetch(PDO::FETCH_ASSOC))
{
echo("<div>".$res["bid"].":".$res["title"]."--".$res["author"]);
}
}
catch(Exception$e)
{
header("Content-type:text/html;charset=gb2312");
echo($e->getMessage());
}
Ⅶ php怎麼連接mysql資料庫
面向對象連接方法:
<?php
$servername="localhost";
$username="root";
$password="password";//這里是你的MySQL密碼
//創建連接
$conn=newmysqli($servername,$username,$password);
//檢測連接
if($conn->connect_error){
die("Connectionfailed:".$conn->connect_error);
}
echo"Connectedsuccessfully";
?>
面向過程的連接方法:
<?php
$servername="localhost";
$username="root";
$password="password";//這里是MySQL密碼
//創建連接
$conn=mysqli_connect($servername,$username,$password);
//檢測連接
if(!$conn){
die("Connectionfailed:".mysqli_connect_error());
}
echo"Connectedsuccessfully";
?>
當然你也可以使用PDO連接資料庫.
Ⅷ 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連接資料庫
$pdo = new PDO(string $dsn,string $username,string $password);
解釋
⑴$dsn:數據源名,全稱date source name,包含了請求連接到資料庫的信息
Mysql示例:$dsn="mysql:host=localhost;dbname=要連接的資料庫庫名";
⑵$username:用戶名,默認為root
⑶$password:密碼,默認為空(注意:就算密碼為空,在連接PDO的時候,也需要用""空內容的雙引號去書寫)
Ⅹ php怎麼用pdo連接mysql資料庫
PDO常用方法及其應用
PDO::query() 主要是用於有記錄結果返回的操作,特別是SELECT操作
PDO::exec() 主要是針對沒有結果集合返回的操作,如INSERT、UPDATE等操作
PDO::lastInsertId() 返回上次插入操作,主鍵列類型是自增的最後的自增ID
PDOStatement::fetch() 是用來獲取一條記錄
PDOStatement::fetchAll() 是獲取所有記錄集到一個中
5.PDO操作MYSQL資料庫實例
復制代碼代碼如下:
<?php
$pdo = new PDO("mysql:host=localhost;dbname=db_demo","root","");
if($pdo -> exec("insert into db_demo(name,content) values('title','content')")){
echo "插入成功!";
echo $pdo -> lastinsertid();
}
?>
復制代碼代碼如下:
<?php
$pdo = new PDO("mysql:host=localhost;dbname=db_demo","root","");
$rs = $pdo -> query("select * from test");
while($row = $rs -> fetch()){
print_r($row);