mysql連接資料庫php
這篇文章主要介紹了PHP同時連接多個mysql資料庫的具體實現,需要的朋友可以參考下
實例:
代碼如下:
<?php
$conn1
=
mysql_connect("127.0.0.1",
"root","root","db1");
mysql_select_db("db1",
$conn1);
$conn2
=
mysql_connect("127.0.0.1",
"root","root","db2");
mysql_select_db("db2",
$conn2);
$sql
=
"select
*
from
ip";
$query
=
mysql_query($sql);
if($row
=
mysql_fetch_array($query))
echo
$row[0]."n";
$sql
=
"select
*
from
web
";
$query
=
mysql_query($sql);
if($row
=
mysql_fetch_array($query))
echo
$row[0];
?>
這段代碼存在問題,在程序執行時會報錯:PHP
Warning:
mysql_fetch_array()
expects
parameter
1
to
be
resource,
boolean
given
in
....
原因分析:
程序開始建立兩個資料庫鏈接,函數mysql_query()原型:
resource
mysql_query
(
string
$query
[,
resource
$link_identifier
]
)
向與指定的連接標識符關聯的伺服器中的當前活動資料庫發送一條查詢。如果沒有指定
link_identifier,則使用上一個打開的連接。如果沒有打開的連接,本函數會嘗試無參數調用
mysql_connect()
函數來建立一個連接並使用之。查詢結果會被緩存。
在本例中由於沒有指定link_identifier,所以,在執行第一條sql時,默認使用的是上一個打開的鏈接,即$conn2,而實際上第一條sql語句應該使用的是$conn1,所以導致報錯,所以為了能夠鏈接多個mysql資料庫,可以使用如下方法:
方法1:在mysql_query函數中指定所用連接,即:
代碼如下:
<?php
$conn1
=
mysql_connect("127.0.0.1",
"root","root","db1");
mysql_select_db("Muma",
$conn1);
$conn2
=
mysql_connect("127.0.0.1",
"root","root","db2");
mysql_select_db("proct",
$conn2);
$sql
=
"select
*
from
ip";
$query
=
mysql_query($sql,$conn1);
//添加連接$conn1
if($row
=
mysql_fetch_array($query))
echo
$row[0]."n";
$sql
=
"select
*
from
web
";
$query
=
mysql_query($sql,
$conn2);
if($row
=
mysql_fetch_array($query))
echo
$row[0];
?>
方法2:在sql語句中關聯所用資料庫,此時可以省略mysql_query的第二個參數,即:
代碼如下:
<?php
$conn1
=
mysql_connect("127.0.0.1",
"root","root","db1");
mysql_select_db("db1",
$conn1);
$conn2
=
mysql_connect("127.0.0.1",
"root","root","db2");
mysql_select_db("db2",
$conn2);
$sql
=
"select
*
from
db1.ip";
//關聯資料庫
$query
=
mysql_query($sql);
if($row
=
mysql_fetch_array($query))
echo
$row[0]."n";
$sql
=
"select
*
from
db2.web
";
$query
=
mysql_query($sql);
if($row
=
mysql_fetch_array($query))
echo
$row[0];
?>
B. 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));
C. php連接mysql資料庫
<?function
conn(){$conn01
=
mysql_connect("localhost",'root','123456');//root是帳號,123456是密碼$mycon=mysql_select_db('testdatabase',$conn01);
//testdatabase是mysql資料庫名if($mycon){echo("資料庫連接成功");}else{echo("資料庫連接失敗");}}conn();?>
D. PHP使用mysqli擴展連接MySQL資料庫
1.面向對象的使用方式
$db
=
new
mysqli('localhost',
'root',
'123456',
'dbname');
如果建立連接時未指定資料庫則選擇使用的資料庫,切換使用的資料庫
$db->select_db('dbname');
$query
=
"SELECT
*
FROM
user
WHERE
uid=4";
$result
=
$db->query($query);
$result_num
=
$result->num_rows;
$row
=
$result->fetch_assoc();
//返回一個關聯數組,可以通過$row['uid']的方式取得值
$row
=
$result->fetch_row();
//返回一個列舉數組,可以通過$row[0]的方式取得值
$row
=
$result->fetch_array();
//返回一個混合數組,可以通過$row['uid']和$row[0]兩種方式取得值
$row
=
$result->fetch_object();
//返回一個對象,可以通過$row->uid的方式取得值
$result->free();
//釋放結果集
$db->close();
//關閉一個資料庫連接,這不是必要的,因為腳本執行完畢時會自動關閉連接
當進行INSERT、UPDATE、DELETE操作時,使用$db->affected_rows查看影響行數
2.面向過程的使用方式
$db
=
mysqli_connect('localhost',
'root',
'123456',
'dbname');
如果建立連接時未指定資料庫則選擇使用的資料庫,切換使用的資料庫
mysqli_select_db($db,
'dbname');
查詢資料庫
$query
=
"SELECT
*
FROM
user
WHERE
uid=4";
$result
=
mysqli_query($db,
$query);
$result_num
=
mysqli_num_rows($result);
返回一行結果
$row
=
mysqli_fetch_assoc($result);
//返回一個關聯數組,可以通過$row['uid']的方式取得值
$row
=
mysqli_fetch_row($result);
//返回一個列舉數組,可以通過$row[0]的方式取得值
$row
=
mysqli_fetch_array($result);
//返回一個混合數組,可以通過$row['uid']和$row[0]兩種方式取得值
$row
=
mysqli_fetch_object($result);
//返回一個對象,可以通過$row->uid的方式取得值
斷開資料庫連接
mysqli_free_result($result);
//釋放結果集
mysqli_close($db);
//關閉一個資料庫連接,這不是必要的,因為腳本執行完畢時會自動關閉連接
當進行INSERT、UPDATE、DELETE操作時,使用mysqli_affected_rows()查看影響行數
E. PHP連接MySQL資料庫的幾種方式
MySQLi :MySQLi 只針對 MySQL 資料庫,MySQLi 還提供了 API 介面。
PDO (PHP Data Objects):PDO 應用在 12 種不同資料庫中。
F. php連接mysql資料庫的幾種方法
PHP5之前一般使用MYSQL*函數,只有一般推薦下面的兩種新的方式:
G. 用php如何連接MySQL資料庫
php鏈接mysql必備條件:
已安裝mysql資料庫;
檢查php環境是否已開啟mysql擴展(一般情況下是開啟的);
檢查方法:a.使用phpinfo();函數,看有沒有mysql項;b.打開php.ini文件,檢查php_mysql.dll前分號是否已取掉。
php鏈接代碼如下:
<?php
//設置編碼格式header("Content-type:text/html;charset=utf-8");//定義資料庫主機地址$host="localhost";//定義mysql資料庫登錄用戶名$user="root";//定義mysql資料庫登錄密碼$pwd="";//鏈接資料庫$conn=mysql_connect($host,$user,$pwd);//對連接進行判斷if(!$conn){die("資料庫連接失敗!".mysql_errno());}else{echo"資料庫連接成功!";}?>
H. mysql資料庫連接不上php
換pdo 或者百mysqli
<?php//pdo try { $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);} catch (PDOException $e) { die("Error!: " . $e->getMessage() . "");}?> //創建mysqli對象方度式 1//屏蔽連知接產生的錯誤$mysqli = new mysqli('127.0.0.1', 'root', '', 'test');//只能用函數來判斷道是否連接成功回if(mysqli_connect_errno()){ echo mysqli_connect_error();}//創建mysqli對象方式 2 可以設置一些參答數$mysqli = mysqli_init();$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//設置超時時間$mysqli->real_connect('127.0.0.1', 'root', '', 'test');
I. 請問php連接上mysql資料庫該怎麼進行配置的
1、下載一個phpmyadin,看看phpmyadmin能不能登入mysql
如果能登陸,則表明是你的程序有問題
2、如果不能登陸,則查找libmysql.dll是否復制到c:\windows\system32下
則安裝mysql連接程序
3、500錯誤,請在IE->選項->高級->顯示錯誤打開,則可以顯示出錯信息
如果還不顯示錯誤提示,則編輯php.ini
把display_error
=
On
重啟web