php示例
這篇文章主要介紹了PHP同時連接多個mysql資料庫的具體實現,需要的朋友可以參考下
實例:
代碼如下:
$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]."";
$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函數中指定所用連接,即:
代碼如下:
$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]."";
$sql = "select * from web ";
$query = mysql_query($sql, $conn2);
if($row = mysql_fetch_array($query))
echo $row[0];
?
方法2:在sql語句中關聯所用資料庫,此時可以省略mysql_query的第二個參數,即:
代碼如下:
$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]."";
$sql = "select * from db2.web ";
$query = mysql_query($sql);
if($row = mysql_fetch_array($query))
echo $row[0];
?
❷ PHP8新特性示例
命名參數 :就是具名參數,在調用函數的時候,可以指定參數名稱,指定參數名稱後,參數順序可以不安裝原函數參數順序傳
示例:
註解 :註解可以將類定義成一個一個低耦合,高內聚的元數據類。在使用的時候通過註解靈活引入,反射註解類實例的時候達到調用的目的。註解類只有在被實例化的時候才會調用
示例
示例:
解釋 :在不確定參數類型的場景下,可以使用.
示例:
解釋:和 switch case 差不多,但是嚴格要求 === 匹配
示例:
解釋:簡化了 is_null 判斷
示例:
考慮到 PHP 動態語言類型的特性,現在很多情況下,聯合類型都是很有用的。聯合類型是兩個或者多個類型的集合,表示可以使用其中任何一個類型。
請注意,聯合類型中不包含 void ,因為 void 表示的含義是 「根本沒有返回值」。 另外,可以使用 |null 或者現有的 ? 表示法來表示包含 nullable 的聯合體 :
JIT — just in time — 編譯器雖然不總是在 Web 請求的上下文中,但是有望顯著地提高性能。目前還沒有完成任何准確的基準測試,但是肯定會到來。
屬性在其他語言中通常被稱為 註解 ,提供一種在無需解析文檔塊的情況下將元數據添加到類中的方法。
盡管已經可以返回 self,但是 static 直到 PHP 8 才是有效地返回類型 。考慮到 PHP 具有動態類型的性質,此功能對於許多開發人員將非常有用。
有人可能將其稱為必要的邪惡: mixed 類型讓許多人感覺十分混亂。然而,有一個很好的論據支持去實現它:缺少類型在 PHP 中會導致很多情況:
因為上述原因,添加 mixed 類型是一件很棒的事兒。 mixed 本身代表下列類型中的任一類型:
請注意,mixed 不僅僅可以用來作為返回類型,還可以用作參數和屬性類型。因為 mixed 類型已經包括了 null,因此 mixed 類型不可為空。下面的代碼會觸發致命錯誤:
已上是整理出來的新特性的變化,後續會繼續整理,PHP8的發布會讓PHP更上一層樓,相信PHP是世界上最好的語言!
❸ php數組刪除元素示例
在某個數組中刪除一個元素,我是直接用的unset,也不管unset之後會發生什麼。但今天看到的東西卻讓我大吃一驚,並不是我想像的那樣,我用示例來說明
我們來舉一個例子:
代碼如下:
<?php
$arr
=
array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>
我之前想像的是unset之後,數組$arr應該會壓縮數組以填補缺少的元素位置,但print_r($arr)之後,結果卻不是那樣的,最終結果是
Array
(
[0]
=>
a
[2]
=>
c
[3]
=>
d
);
如果是這樣的話,那我們就來看看數字數組的形式
代碼如下:
<?php
$arr
=
range(5,10,4);
print_r($arr);//<span
style="font-family:
Simsun;font-size:16px;
">Array
(
[0]
=>
5
[1]
=>
6
[2]
=>
7
[3]
=>
8
[4]
=>
9
[5]
=>
10
)</span>
unset($arr[1]);//<span
style="font-family:
Simsun;font-size:16px;
">Array
(
[0]
=>
5
[2]
=>
7
[3]
=>
8
[4]
=>
9
[5]
=>
10
)</span>
print_r($arr);
?>
可以看到輸出的形式也是數組是會填補缺少的元素的位置。那麼怎麼才能做到缺少的元素會被填補並且數組會被重新索引呢?答案是array_splice():<pre
name="code"
class="php"><?php
代碼如下:
$arr
=
array('a','b','c','d');
array_splice($arr,1,1);
print_r($arr);
//
<span
style="font-family:
Simsun;font-size:16px;
">Array
(
[0]
=>
a
[1]
=>
c
[2]
=>
d
)</span>
?>
❹ PHP利用pdo_odbc實現連接資料庫示例【基於ThinkPHP5.1搭建的項目】
本文實例講述了PHP利用pdo_odbc實現連接資料庫。分享給大家供大家參考,具體如下:
目的:從sql
server資料庫裡面把某個視圖文件調用出來,以鍵值對的方式顯示在頁面上。
利用pdo
odbc來實現PHP連接資料庫:
在PHP配置文件裡面開啟pdo_odbc.dll服務。重啟Apache伺服器。
在ThinkPHP5.1的項目中在模塊里添加config添加規定好的樣式資料庫:
代碼如下:
<?php
return
[
//
資料庫類型
'type'
=>
'sqlsrv',
//
伺服器地址
'hostname'
=>
'localhost',
//
資料庫名
'database'
=>
'mysql',
//
用戶名
'username'
=>
'sa',
//
密碼
'password'
=>
'123456',
//
埠
'hostport'
=>
'',
//
連接dsn
'dsn'
=>
'odbc:Driver={SQL
Server};Server=localhost;Database=mysql',
//
資料庫連接參數
'params'
=>
[],
//
資料庫編碼默認採用utf8
'charset'
=>
'utf8',
//
資料庫表前綴
'prefix'
=>
'',
//
資料庫調試模式
'debug'
=>
true,
//
資料庫部署方式:0
集中式(單一伺服器),1
分布式(主從伺服器)
'deploy'
=>
0,
//
資料庫讀寫是否分離
主從式有效
'rw_separate'
=>
false,
//
讀寫分離後
主伺服器數量
'master_num'
=>
1,
//
指定從伺服器序號
'slave_no'
=>
'',
//
是否嚴格檢查欄位是否存在
'fields_strict'
=>
true,
//
數據集返回類型
'resultset_type'
=>
'array',
//
自動寫入時間戳欄位
'auto_timestamp'
=>
false,
//
時間欄位取出後的默認時間格式
'datetime_format'
=>
'Y-m-d
H:i:s',
//
是否需要進行SQL性能分析
'sql_explain'
=>
false,
//
Builder類
'builder'
=>
'',
//
Query類
'query'
=>
'\\think\\db\\Query',
//
是否需要斷線重連
'break_reconnect'
=>
false,
//
斷線標識字元串
'break_match_str'
=>
[],
];
?>
在控制器controller裡面建一個控制文件Test.php
代碼如下:
<?php
namespace
app\index\controller;
use
think\Db;
use
think\Controller;
class
Test
extends
Controller
{
public
function
zz(){
$data=Db::view('View_2')->select();
echo
json_encode($data);
}
}
?>
最後調用入口文件即可訪問。
http://localhost:81/1111/tp5/public/index/test/zz
我的效果:
[{"111":"123","1112":"LLP","232":"1","ROW_NUMBER":"1"},{"111":"123","1112":"BB","232":"2","ROW_NUMBER":"2"}]
更多關於thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend
FrameWork框架入門教程》及《PHP模板技術總結》。
希望本文所述對大家基於ThinkPHP框架的PHP程序設計有所幫助。
您可能感興趣的文章:ThinkPHP實現多資料庫連接的解決方法tp5(thinkPHP5)框架實現多資料庫查詢的方法ThinkPHP3.1新特性之多資料庫操作更加完善tp5(thinkPHP5)框架連接資料庫的方法示例PHP7使用ODBC連接SQL
Server2008
R2資料庫示例【基於thinkPHP5.1框架】thinkPHP5實現的查詢資料庫並返回json數據實例tp5(thinkPHP5)操作mongoDB資料庫的方法tp5(thinkPHP5)框架資料庫Db增刪改查常見操作總結thinkPHP5框架實現多資料庫連接,跨數據連接查詢操作示例
❺ 幾種常用PHP連接資料庫的代碼示例
PHP連接資料庫之PHP連接MYSQL資料庫代碼
PHP連接資料庫之PHP連接ACCESS資料庫代碼方法
PHP連接資料庫之PHP連接MS SQL資料庫代碼方法
安裝SQL伺服器並添加PHP的MSSQL擴展
使用以下代碼連接並測試
PHP連接資料庫之PHP連接Oracle資料庫
PHP提供了兩套函數與Oracle連接 分別是ORA_和OCI函數 其中ORA_函數略顯陳舊 OCI函數更新據說更好一些 兩者的使用語法幾乎相差無幾 你的PHP安裝選項應該可以支持兩者的使用
❻ php中目錄操作opendir()、readdir()及scandir()用法示例
本文實例講述了php中目錄操作opendir()、readdir()及scandir()用法。分享給大家供大家參考,具體如下:
opendir(path,context)若成功,則該函數返回一個目錄流,否則返回
false
以及一個
error。可以通過在函數名前加上
「@」
來隱藏
error
的輸出。
readdir()
函數返回由
opendir()
打開的目錄句柄中的條目。若成功,則該函數返回一個文件名,否則返回
false。
scandir()
函數返回一個數組,其中包含指定路徑中的文件和目錄。
若成功,則返回一個數組,若失敗,則返回
false。如果
directory
不是目錄,則返回布爾值
false
付上2段搜到的讀取目錄的代碼,親測有效
顯示目錄中文件名
//
打開目錄,然後讀取其內容
if
(is_dir($dir)){
if
($dh
=
opendir($dir)){
while
(($file
=
readdir($dh))
!==
false){
echo
"filename:"
.
$file
.
"<br>";
}
closedir($dh);
}
}
拷貝一個目錄的文件到另一個目錄
_dir($from_dir,$to_dir);
function
_dir($from_dir,$to_dir){
if(!is_dir($from_dir)){
return
false;
}
echo
"\r\n
from:",$from_dir,'---to',$to_dir;
$from_files
=
scandir($from_dir);
//如果不存在目標目錄,則嘗試創建
if(!file_exists($to_dir)){
@mkdir($to_dir);
}
if(!empty($from_files)){
foreach
($from_files
as
$file){
if($file
==
'.'
||
$file
==
'..'
){
continue;
}
if(is_dir($from_dir.'/'.$file)){//如果是目錄,則調用自身
_dir($from_dir.'/'.$file,$to_dir.'/'.$file);
}else{//直接到目標文件夾
($from_dir.'/'.$file,$to_dir.'/'.$file);
}
}
}
}
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP目錄操作技巧匯總》、《php文件操作總結》、《PHP常用遍歷演算法與技巧總結》、《PHP數據結構與演算法教程》、《php程序設計演算法總結》、《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:使用PHP函數scandir排除特定目錄PHP獲取當前文件所在目錄
getcwd()函數php文件夾與文件目錄操作函數介紹php中判斷文件空目錄是否有讀寫許可權的函數代碼PHP解析目錄路徑的3個函數總結PHP使用glob函數遍歷目錄或文件夾的方法php
file_exists
檢查文件或目錄是否存在的函數PHP遍歷目錄函數opendir()、readdir()、closedir()、rewinddir()總結PHP刪除非空目錄的函數代碼小結PHP目錄函數實現創建、讀取目錄教程實例php使用scandir()函數掃描指定目錄下所有文件示例
❼ PHP讀取zip文件的方法示例
本文實例講述了PHP讀取zip文件的方法。分享給大家供大家參考,具體如下:
<?php
$zip
=
zip_open("111.zip");
if
($zip)
{
while
($zip_entry
=
zip_read($zip))
{
echo
"Name:
"
.
zip_entry_name($zip_entry)
.
"n";
echo
"Actual
Filesize:
"
.
zip_entry_filesize($zip_entry)
.
"n";
echo
"Compressed
Size:
"
.
zip_entry_compressedsize($zip_entry)
.
"n";
echo
"Compression
Method:
"
.
zip_entry_compressionmethod($zip_entry)
.
"n";
if
(zip_entry_open($zip,
$zip_entry,
"r"))
{
echo
"File
Contents:n";
$buf
=
zip_entry_read($zip_entry,
zip_entry_filesize($zip_entry));
echo
"$buf\n";
zip_entry_close($zip_entry);
}
echo
"n";
}
zip_close($zip);
}
?>
運行效果截圖如下:
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP操作zip文件及壓縮技巧總結》、《php文件操作總結》、《php正則表達式用法總結》、《PHP運算與運算符用法總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
❽ 幾種常用PHP連接資料庫的代碼示例
PHP連接資料庫之PHP連接MYSQL資料庫代碼
<?php
$mysql_server_name='localhost';
//改成自己的mysql資料庫伺服器
$mysql_username='root';
//改成自己的mysql資料庫用戶名
$mysql_password='12345678';
//改成自己的mysql資料庫密碼
$mysql_database='mycounter';
//改成自己的mysql資料庫名
$conn=mysql_connect($mysql_server_name,
$mysql_username,$mysql_password,
$mysql_database);
$sql='CREATEDATABASEmycounter
_chinese_ci;
';
mysql_query($sql);
$sql='CREATETABLE`counter`
(`id`INT(255)UNSIGNEDNOTNULL
AUTO_INCREMENT,`count`INT(255)
UNSIGNEDNOTNULLDEFAULT0,PRIMARYKEY
(`id`))TYPE=innodb;';
mysql_select_db($mysql_database,$conn);
$result=mysql_query($sql);
//echo$sql;
mysql_close($conn);
echo"Hello!資料庫mycounter已經成功建立!";
?>
PHP連接資料庫之PHP連接ACCESS資料庫代碼方法
<?
$conn=newcom("ADODB.Connection");
$connstr="DRIVER={Microsoft
AccessDriver(*.mdb)};
DBQ=".realpath("data/db.mdb");
$conn->Open($connstr);
$rs=newcom("ADODB.RecordSet");
$rs->Open("select*
fromszd_t",$conn,1,1);
while(!$rs->eof){
$f=$rs->Fields(1);
echo$f->value;
$rs->MoveNext();
}
?>
❾ php類聲明和php類使用方法示例分享
復制代碼
代碼如下:
<?php
/**php語言是支持面向對象編程的,對於面向對象的編程,學過java和C++的人都知道啊!
*如果不清楚的去問一下就可以了。
*/
//我們來定義一個類,定義類的關鍵字是
「class」
class
computer
{
//在類裡面可以創建方法,變數等
//定義一個加法
function
add
($n1,$n2)
{
$sum
=
$n1
+
$n2;
return
$sum;
}
//定義一個減法
function
jf
($n1,$n2)
{
$sum
=
$n1
-
$n2;
return
$sum;
}
//定義一個乘法
function
cf
($n1,$n2)
{
$sum
=
$n1
*
$n2;
return
$sum;
}
}
/**
如何使用類中的方法,就要創建類的對象,用對象調用方法
下面是調用類的方法
*/
//$com
就是computer類的對象,創建對象用new關鍵字
$com
=
new
computer();
//調用類中的方法就用
對象名
->
方法名(參數,參數...)
echo
$com
->
add(1,2);
echo
$com
->
jf(1,2);
echo
$com
->
cf(1,2);
//這些方法被按鈕調用的化,就可以簡單編寫出一個計算器來,
//每個按鈕對應一個方法
?>