Ⅰ 如何用php獲取資料庫信息並顯示
獲取ppq資料庫的所有表名的代碼:
?php
$server='localhost';
$user='root';
$pass='12345';
$dbname='ppq';
$conn=mysql_connect($server,$user,$pass);
if(!$conn)
die("資料庫系統連接失敗!");
$result=mysql_list_tables($dbname);
if(!$result)
die("資料庫連接失敗!");
while($row=mysql_fetch_row($result))
{
echo
$row[0]."
";
}
mysql_free_result($result);
?
mysql_list_tables
(PHP
3,
PHP
4
,
PHP
5)
mysql_list_tables
--
列出
MySQL
資料庫中的表
說明
resource
mysql_list_tables
(
string
database
[,
resource
link_identifier])
mysql_list_tables()
接受一個資料庫名並返回和
mysql_query()
函數很相似的一個結果指針。用
mysql_fetch_array()或者用mysql_fetch_row()來獲得一個數組,數組的第0列就是數組名,當獲取不到時
mysql_fetch_array()或者用mysql_fetch_row()返回
FALSE。
Ⅱ php 怎麼獲取php版本信息
在PHP代碼中輸入
phpinfo();
即可查看PHP當前的所有信息,當然包括版本
或者在PHP安裝目錄下,右擊任意一個DLL文件看屬性,就能發現其對應版本
Ⅲ PHP 可以獲取客戶端哪些訪問信息
<?php
echo"<br>".$_SERVER['PHP_SELF'];#當前正在執行腳本的文件名,與documentroot相關
echo"<br>".$_SERVER['argv'];#傳遞給該腳本的參數。
echo"<br>".$_SERVER['argc'];#包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。
echo"<br>".$_SERVER['GATEWAY_INTERFACE'];#伺服器使用的CGI規范的版本。例如,「CGI/1.1」。
echo"<br>".$_SERVER['SERVER_NAME'];#當前運行腳本所在伺服器主機的名稱。
echo"<br>".$_SERVER['SERVER_SOFTWARE'];#伺服器標識的字串,在響應請求時的頭部中給出。
echo"<br>".$_SERVER['SERVER_PROTOCOL'];#請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
echo"<br>".$_SERVER['REQUEST_METHOD'];#訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
echo"<br>".$_SERVER['QUERY_STRING'];#查詢(query)的字元串。
echo"<br>".$_SERVER['DOCUMENT_ROOT'];#當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。
echo"<br>".$_SERVER['HTTP_ACCEPT'];#當前請求的Accept:頭部的內容。
echo"<br>".$_SERVER['HTTP_ACCEPT_CHARSET'];#當前請求的Accept-Charset:頭部的內容。例如:「iso-8859-1,*,utf-8」。
echo"<br>".$_SERVER['HTTP_ACCEPT_ENCODING'];#當前請求的Accept-Encoding:頭部的內容。例如:「gzip」。
echo"<br>".$_SERVER['HTTP_ACCEPT_LANGUAGE'];#當前請求的Accept-Language:頭部的內容。例如:「en」。
echo"<br>".$_SERVER['HTTP_CONNECTION'];#當前請求的Connection:頭部的內容。例如:「Keep-Alive」。
echo"<br>".$_SERVER['HTTP_HOST'];#當前請求的Host:頭部的內容。
echo"<br>".$_SERVER['HTTP_REFERER'];#鏈接到當前頁面的前一頁面的URL地址。
echo"<br>".$_SERVER['HTTP_USER_AGENT'];#當前請求的User_Agent:頭部的內容。
echo"<br>".$_SERVER['HTTPS'];#—如果通過https訪問,則被設為一個非空的值(on),否則返回off
echo"<br>".$_SERVER['REMOTE_ADDR'];#正在瀏覽當前頁面用戶的IP地址。
echo"<br>".$_SERVER['REMOTE_HOST'];#正在瀏覽當前頁面用戶的主機名。
echo"<br>".$_SERVER['REMOTE_PORT'];#用戶連接到伺服器時所使用的埠。
echo"<br>".$_SERVER['SCRIPT_FILENAME'];#當前執行腳本的絕對路徑名。
echo"<br>".$_SERVER['SERVER_ADMIN'];#管理員信息
echo"<br>".$_SERVER['SERVER_PORT'];#伺服器所使用的埠
echo"<br>".$_SERVER['SERVER_SIGNATURE'];#包含伺服器版本和虛擬主機名的字元串。
echo"<br>".$_SERVER['PATH_TRANSLATED'];#當前腳本所在文件系統(不是文檔根目錄)的基本路徑。
echo"<br>".$_SERVER['SCRIPT_NAME'];#包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
echo"<br>".$_SERVER['REQUEST_URI'];#訪問此頁面所需的URI。例如,「/index.html」。
echo"<br>".$_SERVER['PHP_AUTH_USER'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是用戶輸入的用戶名。
echo"<br>".$_SERVER['PHP_AUTH_PW'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是用戶輸入的密碼。
echo"<br>".$_SERVER['AUTH_TYPE'];#當PHP運行在Apache模塊方式下,並且正在使用HTTP認證功能,這個變數便是認證的類型。
?>
Ⅳ php讀取資料庫信息的幾種方法
連接到一個url地址為localhost、埠為3306的mysql伺服器上。mysql伺服器的帳號是"root",密碼是"9999"。mysql伺服器上有一個資料庫ok,資料庫里有一個表abc。表abc一共為兩列,列名分別是"id"和"name",將abc里的所有數據讀出來。
<?
$dbh=@mysql_connect("localhost:3306","root","9999");
/*定義變數dbh,mysql_connect()函數的意思是連接mysql資料庫,"@"的意思是屏蔽報錯*/
if(!$dbh){die("error");}
/*die()函數的意思是將括弧里的字串送到瀏覽器並中斷PHP程式(Script)。括弧里的參數為欲送出的字串。*/
@mysql_select_db("ok",$dbh);
/*選擇mysql伺服器里的一個資料庫,這里選的資料庫名為ok*/
$q="SELECT*FROMabc";
/*定義變數q,"SELECT*FROMabc"是一個SQL語句,意思是讀取表abc中的數據*/
?>
<br/>
<!--=========方法一=========-->
<br/>
<?
$rs=mysql_query($q,$dbh);
/*定義變數rs,函數mysql_query()的意思是:送出query字串供MySQL做相關的處理或者執行.由於php是從右往左執行的,所以,rs的值是伺服器運行mysql_query()函數後返回的值*/
if(!$rs){die("Validresult!");}
echo"<table>";
echo"<tr><td>ID</td><td>Name</td></tr>";
while($row=mysql_fetch_row($rs))echo"<tr><td>$row[0]</td><td>$row[1]</td></tr>";
/*定義量變(數組)row,並利用while循環,把數據一一寫出來.
函數mysql_fetch_row()的意思是:將查詢結果$rs單列拆到陣列變數中.
$row[0]和$row[1]的位置可以換*/
echo"</table>";
?>
<br/>
<!--=========方法二=========-->
<br/>
<?
$rs=mysql_query($q,$dbh);
while($row=mysql_fetch_object($rs))echo"$row->id$row->name<br/>";
/*id和name可以換位置*/
?>
<br/>
<!--=========方法三=========-->
<br/>
<?
$rs=mysql_query($q,$dbh);
while($row=mysql_fetch_array($rs))echo"$row[id]$row[name]<br/>";
/*id和name可以換位置*/
?>
<!--=========方法三最快=========-->
<?
@mysql_close($dbh);
/*關閉到mysql資料庫的連接*/
?>
Ⅳ 如何調試PHP的Core之獲取基本信息
首先, 讓生成一個供舉例子的Core文件: <?phpfunction recurse($num) { recurse(++$num);} recurse(0); 運行這個PHP文件: $ php test.phpSegmentation fault (core mped) 這個PHP因為無線遞歸, 會導致爆棧, 從而造成 segment fault而在PHP的當前工作目錄產生Coremp文件(如果你的系統沒有產生Coremp文件, 那請查詢ulimit的相關設置). 好, 現在, 讓刪除掉這個test.php, 忘掉上面的代碼, 我們現在僅有的是這個Core文件, 任務是, 找出這個Core產生的原因, 以及發生時候的狀態. 首先, 讓用gdb打開這個core文件: $ gdb php -c core.31656 會看到很多的信息, 首先讓我們注意這段: Core was generated by `php test.php'.Program terminated with signal 11, Segmentation fault. 他告訴我們Core發生的原因:」Segmentation fault」. 一般來說, 這種Core是最常見的, 解引用空指針, double free, 以及爆棧等等, 都會觸發SIGSEGV, 繼而默認的產生Coremp. 現在讓看看Core發生時刻的堆棧: #0 execute (op_array=0xdc9a70) at /home/laruence/package/php-5.2.14/Zend/zend_vm_execute.h:5353 memset(EX(CVs), 0, sizeof(zval**) * op_array->last_var);(gdb) bt#0 execute (op_array=0xdc9a70) at /home/laruence/package/php-5.2.14/Zend/zend_vm_execute.h:53#1 0x00000000006ea263 in zend_do_fcall_common_helper_SPEC (execute_data=0x7fbf400210) at /home/laruence/package/php-5.2.14/Zend/zend_vm_execute.h:234#2 0x00000000006e9f61 in execute (op_array=0xdc9a70) at /home/laruence/package/php-5.2.14/Zend/zend_vm_execute.h:92#3 0x00000000006ea263 in zend_do_fcall_common_helper_SPEC (execute_data=0x7fbf400440) at /home/laruence/package/php-5.2.14/Zend/zend_vm_execute.h:234#4 0x00000000006e9f61 in execute (op_array=0xdc9a70) at /home/laruence/package/php-5.2.14/Zend/zend_vm_execute.h:92#5 0x00000000006ea263 in zend_do_fcall_common_helper_SPEC (execute_data=0x7fbf400670) at /home/laruence/package/php-5.2.14/Zend/zend_vm_execute.h:234..... 不停的按回車, 可以看到堆棧很深, 不停的是zend_do_fcall_common_helper_SPEC和execute的重復, 那麼這基本就能斷定是因為產生了無窮大的遞歸(不能一定說是無窮遞歸, 比如之前文章中介紹深悉正則(pcre)最大回溯/遞歸限制). 從而造成爆棧產生的Core. Ok, 那麼現在讓看看, Core發生在PHP的什麼函數中, 在PHP中, 對於FCALL_* Opcode的handler來說, execute_data代表了當前函數調用的一個State, 這個State中包含了信息: (gdb)f 1#1 0x00000000006ea263 in zend_do_fcall_common_helper_SPEC (execute_data=0x7fbf400210) at /home/laruence/package/php-5.2.14/Zend/zend_vm_execute.h:234234 zend_execute(EG(active_op_array) TSRMLS_CC);(gdb) p execute_data->function_state.function->common->function_name$3 = 0x2a95b65a78 "recurse"(gdb) p execute_data->function_state.function->op_array->filename$4 = 0x2a95b632a0 "/home/laruence/test.php"(gdb) p execute_data->function_state.function->op_array->line_start$5 = 2 現在我們得到, 在調用的PHP函數是recurse, 這個函數定義在/home/laruence/test.php的第二行 經過重復驗證幾個frame, 可以看出, 一直是在重復調用這個PHP函數. 要注意的是, 為了介紹查看執行信息的原理, 我才採用原生的gdb的print來查看, 其實我們還可以使用PHP源代碼中提供的.gdbinit(gdb命令編寫腳本), 來簡單的獲取到上面的信息: (gdb) source /home/laruence/package/php-5.2.14/.gdbinit(gdb) zbacktrace[0xbf400210] recurse() /home/laruence/test.php:3[0xbf400440] recurse() /home/laruence/test.php:3[0xbf400670] recurse() /home/laruence/test.php:3[0xbf4008a0] recurse() /home/laruence/test.php:3[0xbf400ad0] recurse() /home/laruence/test.php:3[0xbf400d00] recurse() /home/laruence/test.php:3[0xbf400f30] recurse() /home/laruence/test.php:3[0xbf401160] recurse() /home/laruence/test.php:3..... 關於.gdbinit, 是一段小小的腳本文件, 定義了一些方便我們去調試PHP的Core, 大家也可以用文本編輯器打開, 看看裡面定義的一些快捷的命令, 一般來說, 我常用的有: zbacktraceprint_ht**系列zmemcheck OK, 回歸正題, 我們現在知道, 問題發生在/home/laruence/test.php的recurse函數的遞歸調用上了. 現在, 讓我們來看看, 在調用這個函數的時候的參數是什麼? PHP的參數傳遞是依靠一個全局Stack來完成的, 也就是EG(argument_stack), EG在非多線程情況下就是executor_globals, 它保持了很多執行狀態. 而argument_statck就是參數的傳遞棧, 保存著對應PHP函數調用層數相當的調用參數. 要注意的是, 這個PHP函數調用堆棧(層數)不和gdb所看到的backtrace簡單的一一對應, 所以參數也不能直接和gdb的backtrace對應起來, 需要單獨分析: //先看看, 最後一次函數調用的參數數目是多少(gdb) p (int )*(executor_globals->argument_stack->top_element - 2)$13 = 1 //再看看, 最後一次函數調用的參數是什麼(gdb) p **(zval **)(executor_globals->argument_stack->top_element - 3)$2 = {value = {lval = 22445, dval = 1.1089303420906779e-319, str = {val = 0x57ad <Address 0x57ad out of bounds>, len = 7}, ht = 0x57ad, obj = {handle = 22445, handlers = 0x7}}, refcount = 2, type = 1 '\001', is_ref = 0 '\0'} 好, 我們現在得到, 最後一次調用的參數是一個整數, 數值是22445 到了這一步, 我們就得到了這個Core發生的時刻的PHP層面的相關信息, 接下來, 就可以交給對應的PHP開發工程師來排查, 這個參數下, 可能造成的無窮大遞歸的原因, 從而修復這個問題..
Ⅵ PHP獲取文件信息獲取
註:上傳的文件均保存在臨時目錄下,可以通過$file->getRealPath()獲取臨時文件存放的目錄,然後通過file_get_content($path)獲取到文件對象,
Ⅶ PHP怎麼獲取系統信息和伺服器詳細信息
獲取系統類型及版本號: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)
只獲取系統類型: php_uname('s') (或:PHP_OS,例:Windows NT)
只獲取系統版本號: php_uname('r') (例:5.1)
獲取PHP運行方式: php_sapi_name() (PHP run mode:apache2handler)
獲取前進程用戶名: Get_Current_User()
獲取PHP版本: PHP_VERSION
獲取Zend版本: Zend_Version()
獲取PHP安裝路徑: DEFAULT_INCLUDE_PATH
獲取當前文件絕對路徑: __FILE__
獲取Http請求中Host值: $_SERVER["HTTP_HOST"] (返回值為域名或IP)
獲取伺服器IP: GetHostByName($_SERVER['SERVER_NAME'])
接受請求的伺服器IP: $_SERVER["SERVER_ADDR"] (有時候獲取不到,推薦用:GetHostByName($_SERVER['SERVER_NAME']))
獲取客戶端IP: $_SERVER['REMOTE_ADDR']
獲取伺服器解譯引擎: $_SERVER['SERVER_SOFTWARE']
獲取伺服器CPU數量: $_SERVER['PROCESSOR_IDENTIFIER']
獲取伺服器系統目錄: $_SERVER['SystemRoot']
獲取伺服器域名: $_SERVER['SERVER_NAME'] (建議使用:$_SERVER["HTTP_HOST"])
獲取用戶域名: $_SERVER['USERDOMAIN']
獲取伺服器語言: $_SERVER['HTTP_ACCEPT_LANGUAGE']
獲取伺服器Web埠: $_SERVER['SERVER_PORT']
訪問用戶的瀏覽器信息: $_SERVER['HTTP_USER_AGENT'];
<script language="JavaScript">
document.write("瀏覽器名稱: "+navigator.appName+"<br>");
document.write("瀏覽器版本號: "+navigator.appVersion+"<br>");
document.write("系統語言: "+navigator.systemLanguage+"<br>");
document.write("系統平台: "+navigator.platform+"<br>");
document.write("瀏覽器是否支持cookie: "+navigator.cookieEnabled+"<br>");
</script>
Ⅷ php 如何獲取伺服器的信息
伺服器變數 $_SERVER 詳解:
1、$_SESSION['PHP_SELF'] — 獲取當前正在執行腳本的文件名
2、$_SERVER['SERVER_PROTOCOL'] — 請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
3、$_SERVER['REQUEST_TIME'] — 請求開始時的時間戳。從 PHP 5.1.0 起有效。和time函數效果一樣。
4、$_SERVER['argv'] — 傳遞給該腳本的參數。我試了下,get方法可以得到$_SERVER['argv'][0];post方法無法給他賦值。
5、$_SERVER['SERVER_NAME'] — 返回當前主機名。
6、$_SERVER['SERVER_SOFTWARE'] — 伺服器標識的字串,在響應請求時的頭信息中給出。 如Microsoft-IIS/6.0
7、$_SERVER['REQUEST_METHOD'] — 訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
8、$_SERVER['QUERY_STRING'] — 查詢(query)的字元串(URL 中第一個問號 ? 之後的內容)。
9、$_SERVER['DOCUMENT_ROOT'] — 當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。 如E:\server
10、$_SERVER['HTTP_ACCEPT'] — 當前請求的 Accept: 頭信息的內容。
11、$_SERVER['HTTP_ACCEPT_CHARSET'] — 當前請求的 Accept-Charset: 頭信息的內容。例如:「iso-8859-1,*,utf-8」。
12、$_SERVER['HTTP_ACCEPT_ENCODING'] — 當前請求的 Accept-Encoding: 頭信息的內容。例如:「gzip」。
13、$_SERVER['HTTP_ACCEPT_LANGUAGE'] — 當前請求的 Accept-Language: 頭信息的內容。例如:「en」。
14、$_SERVER['HTTP_CONNECTION'] — 當前請求的 Connection: 頭信息的內容。例如:「Keep-Alive」。
15、$_SERVER['HTTP_HOST'] — 當前請求的 Host: 頭信息的內容。
16、$_SERVER['HTTP_REFERER'] — 鏈接到當前頁面的前一頁面的 URL 地址。
17、$_SERVER['HTTP_USER_AGENT'] — 返回用戶使用的瀏覽器信息。也可以使用 get_browser() 得到此信息。
18、$_SERVER['HTTPS'] — 如果通過https訪問,則被設為一個非空的值,否則返回off.
19、$_SERVER['REMOTE_ADDR'] — 正在瀏覽當前頁面用戶的 IP 地址。
20、$_SERVER['REMOTE_HOST'] — 正在瀏覽當前頁面用戶的主機名。反向域名解析基於該用戶的 REMOTE_ADDR。如本地測試返回127.0.0.1
21、$_SERVER['REMOTE_PORT'] — 用戶連接到伺服器時所使用的埠。我在本機測試沒通過,不知道什麼原因。
22、$_SERVER['SCRIPT_FILENAME'] — 當前執行腳本的絕對路徑名。如返回E:\server\index.php
23、$_SERVER['SERVER_ADMIN'] — 該值指明了 Apache 伺服器配置文件中的 SERVER_ADMIN 參數。如果腳本運行在一個虛擬主機上,則該值是那個虛擬主機的值
24、$_SERVER['SERVER_PORT'] — 伺服器所使用的埠。默認為「80」。如果使用 SSL 安全連接,則這個值為用戶設置的 HTTP 埠。
25、$_SERVER['SERVER_SIGNATURE'] — 包含伺服器版本和虛擬主機名的字元串。
26、$_SERVER['PATH_TRANSLATED'] — 當前腳本所在文件系統(不是文檔根目錄)的基本路徑。這是在伺服器進行虛擬到真實路徑的映像後的結果。 Apache 2 用 戶可以使用 httpd.conf 中的 AcceptPathInfo On 來定義 PATH_INFO。
27、$_SERVER['SCRIPT_NAME'] — 包含當前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含當前文件的絕對路徑和文件名(例如包含文件)。
28、$_SERVER['REQUEST_URI'] — 訪問此頁面所需的 URI。例如,「/index.html」。
29、$_SERVER['PHP_AUTH_DIGEST'] — 當作為 Apache 模塊運行時,進行 HTTP Digest 認證的過程中,此變數被設置成客戶端發送的「Authorization」HTTP 頭內容(以便作進一步的認證操作)。
30、$_SERVER['PHP_AUTH_USER']– 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的用戶名。
31、$_SERVER['PHP_AUTH_PW'] — 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的密碼。
32、$_SERVER['AUTH_TYPE']–當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是認證的類型。
Ⅸ php如何獲取資料庫信息
代碼如下:?View
Code
PHP
include("conn.php");//調用資料庫連接文件
echo
"<table
width=572
height=56
border=0
cellspacing=1>
";
//創建html表格
echo
"<tr
bgcolor=#9999FF>";
echo
"<th
width=33
scope=col>id</th>";
echo
"<th
width=100
scope=col>user_name</th>
";
echo
"<th
width=100
scope=col>user_pass</th>
";
echo
"<th
width=100
scope=col>staus</th>";
echo
"<th
width=100
scope=col>insert_time</th>";
echo
"</tr>";
$SQL
=
"select
*
from
user_info";
$query
=
mysql_query($SQL);
//SQL查詢語句
while
($row
=
mysql_fetch_array($query)){
//使用while循環mysql_fetch_array()並將數據返回數組
echo
"<tr
onmouseout=this.style.backgroundColor=''
onMouseOver=this.style.backgroundColor='#99CC33'
bgcolor=#CCCCCC>";
echo
"<td>$row[0]</td>";
//輸出數組中數據
echo
"<td>$row[1]</td>";
echo
"<td>$row[2]</td>";
echo
"<td>$row[3]</td>";
echo
"<td>$row[4]</td>";
echo
"</tr>";
}
echo
"</table>";輸出記錄截圖