本文目錄一覽:
- 1、PHP同時連接多個mysql資料庫示例代碼
- 2、求PHP對MYSQL的簡單操作代碼!
- 3、PHP7連接mysql資料庫方法
- 4、怎麼使用php代碼建立mysql資料庫
- 5、php怎樣優雅的使用mysql資料庫連接
- 6、php使用mysqli和pdo擴展,測試對比mysql資料庫的執行效率完整示例
PHP同時連接多個mysql資料庫示例代碼
這篇文章主要介紹了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(“product”,
$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];
?
求PHP對MYSQL的簡單操作代碼!
?php
$db=mysql_connect(“host”,”dbuser”,”password”); //連接資料庫伺服器
mysql_select_db(“dbname”,$db); //選擇資料庫
mysql_query(“set names gbk”); //統一字符集
//查詢示例:
$sql=”select * from tablename where condition”; //構造查詢語句
$result=mysql_query($sql,$db); //在先前選中的資料庫中執行查詢操作
//從查詢結果集中取一行輸出,直至所有行輸出完畢
while($myrow=mysql_fetch_array($result))
{
print_r($myrow);
}
//插入示例:
$sql=”insert into tablename values (‘field1′,’field2’,…….)”; //構造插入語句
$result=mysql_query($sql,$db); //執行插入
if ($result)
{
echo “插入成功!”;
exit;
}
else
{
echo “插入失敗!”;
exit;
}
//修改、刪除都是類似的,不再嚕嗦
?
PHP7連接mysql資料庫方法
1、用 mysql_connect 的方法,PHP7會報致命錯誤
$conn= mysql_connect(‘localhost’,’xueyanxiang’,’xueyanxiang’);
Fatal error : Uncaught Error: Call to undefined function mysql_connect() in /Users/xueyanxiang/work/test/xue.php:31 Stack trace: #0 /Users/xueyanxiang/work/test/xue.php(119): xue-run() #1 {main} thrown in /Users/xueyanxiang/work/test/xue.php on line 31
原因是:
PHP5中使用mysql_connect()函數進行連接,但實際上,PHP5.5開始,MySQL就不推薦使用了,屬於廢棄函數
PHP7中貌似已經徹底不支持了,根據官網說明,取而代之的是如下兩個:
本擴展自 PHP 5.5.0 起已廢棄,並在將來會被移除。應使用 MySQLi 或 PDO_MySQL 擴展來替換之。參見 MySQL:選擇
API 指南以及相關 FAQ 以獲取更多信息。用以替代本函數的有:
mysqli_connect()
PDO::__construct()
使用時,不要在使用mysql_connect了,可以換用mysqli_connect(),用法基本類似吧,據說是面向對象的庫。
php.ini中,也只有extension=php_mysqli.dll,而不再有extension=php_mysql.dll這個拓展了。
2、可以使用mysqli,對象化,方法名與被廢棄的類似
$conn= mysqli_connect(‘localhost’,’xueyanxiang’,’xueyanxiang’);
3、PDO工具,推薦使用
$dbh= “mysql:host=localhost;dbname=test”;
$db= new PDO($dbh,’xueyanxiang’,’xueyanxiang’);
$objQuery= $db-query(“select * from user;”);
$res= $objQuery-fetchAll(PDO::FETCH_ASSOC);
不填寫參數的話,默認是關聯和索引都有,如下圖
怎麼使用php代碼建立mysql資料庫
$rs = mysql_select_db($dbname,$conn);
if(!$rs){
$rs = mysql_query(“CREATE DATABASE `$dbname`; “,$conn);
if(!$rs){
$errstr = GetBackAlert(“資料庫 {$dbname} 不存在,也沒許可權創建新的資料庫!”);
echo $errstr;
exit();
}else{
$rs = mysql_select_db($dbname,$conn);
if(!$rs){
$errstr = GetBackAlert(“你對資料庫 {$dbname} 沒許可權!”);
echo $errstr;
exit();
}else{
$ctStr = ‘CREATE TABLE `wish` (
`id` int(11) NOT NULL auto_increment,
`pname` varchar(30) default NULL,
`pqq` varchar(10) default NULL,
`plocal` varchar(50) default NULL,
`pemail` varchar(30) default NULL,
`context` tinytext,
`addDate` datetime default NULL,
`biz1` varchar(250) default NULL,
`biz2` varchar(250) default NULL,
`biz3` varchar(250) default NULL,
`biz4` varchar(250) default NULL,
`biz5` varchar(250) default NULL,
`biz6` int(11) default NULL,
`biz7` int(11) default NULL,
`biz8` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;’;
mysql_query($ctStr,$conn);
}
}
php怎樣優雅的使用mysql資料庫連接
PHP連接mysql使用mysql_connect函數即可進行與mysql資料庫之間的通訊。如果連接成功,則返回一個 MySQL 連接標識,失敗則返回 FALSE。示例如下:?php $host=”localhost”;//mysql主機地址$user=”root”; //mysql 登錄賬戶$pwd=””; //mysql登錄密碼//連接資料庫$conn = mysql_connect($host,$user,$pwd);//判斷if (!$conn) { die(‘連接資料庫失敗: ‘ . mysql_error()); }echo “mysql 連接成功!”; //其他代碼…… // 關閉mysql連接mysql_close($conn);?
php使用mysqli和pdo擴展,測試對比mysql資料庫的執行效率完整示例
本文實例講述了php使用mysqli和pdo擴展,測試對比mysql資料庫的執行效率。分享給大家供大家參考,具體如下:
?php
/**
*
測試pdo和mysqli的執行效率
*/
header(“Content-type:text/html;charset=utf-8”);
//通過pdo鏈接資料庫
$pdo_startTime
=
microtime(true);
$pdo
=
new
PDO(“mysql:host=localhost;dbname=test”,”root”,”1234″,array(PDO::MYSQL_ATTR_INIT_COMMAND
=
“SET
NAMES’utf8′;”));
for($i=1;$i=100;$i++){
$title
=
“pdo標題”.$i;
$content
=
“pdo內容”.$i;
$addtime
=
time();
$user_id
=
$i;
$pdo_sql
=
“INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES(:title,:content,:addtime,:user_id)”;
$sth
=
$pdo-prepare($pdo_sql);
$sth-bindParam(‘:title’,$title);
$sth-bindParam(‘:content’,$content);
$sth-bindParam(‘:addtime’,$addtime);
$sth-bindParam(‘:user_id’,$user_id);
$sth-execute();
}
$pdo_endTime
=
microtime(true);
$pdo_time
=
$pdo_endTime
–
$pdo_startTime;
echo
$pdo_time;
echo
“hr/”;
//通過mysql鏈接資料庫
$mysqli_startTime
=
microtime(true);
$mysqli
=
mysqli_connect(“localhost”,”root”,”1234″,”test”)
or
die(“數據連接失敗”);
mysqli_query($mysqli,”set
names
utf8″);
for($i=1;$i=100;$i++){
$title
=
“mysqli標題”.$i;
$content
=
“mysqli內容”.$i;
$addtime
=
time();
$user_id
=
$i;
$sql
=
“INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES(‘”.$title.”‘,'”.$content.”‘,”.$addtime.”,”.$user_id.”)”;
mysqli_query($mysqli,$sql);
}
$mysqli_endTime
=
microtime(true);
$mysqli_time
=
$mysqli_endTime
–
$mysqli_startTime;
echo
$mysqli_time;
echo
“hr/”;
if($pdo_time
$mysqli_time){
echo
“pdo的執行時間是mysqli的”.round($pdo_time/$mysqli_time).”倍”;
}else{
echo
“mysqli的執行時間是pdo的”.round($mysqli_time/$pdo_time).”倍”;
}
測試結果:其實經過多次測試,pdo和mysqli的執行效率差不多。
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP基於pdo操作資料庫技巧總結》、《php+mysqli資料庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:php使用mysqli和pdo擴展,測試對比連接mysql資料庫的效率完整示例php中資料庫連接方式pdo和mysqli對比分析php中關於mysqli和mysql區別的一些知識點分析php操作mysqli(示例代碼)php封裝的mysqli類完整實例PHP以mysqli方式連接類完整代碼實例php簡單解析mysqli查詢結果的方法(2種方法)php中mysql連接方式PDO使用詳解Php中用PDO查詢Mysql來避免SQL注入風險的方法php
mysql
PDO
查詢操作的實例詳解PHP實現PDO的mysql資料庫操作類
原創文章,作者:OREY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143160.html