2012-06-17 150 views
0

我是PHP新手。 我需要一個關於從給定的URL名稱中提取DB名稱和表名稱的方法的幫助。 例如,讓我們說,我有類似下面的網址:如何從PHP中的URL中獲取數據庫名稱和表名稱?

/test.php?db = ... &表= .../

如何提取數據庫名和表名從此URL使用PHP並將結果用於其他查詢目的。

+0

'parse_url'和'parse_str()'會幫助你。 http://php.net/manual/en/function.parse-url.php http://php.net/manual/en/function.parse-str.php –

+2

我知道,你剛剛開始並弄清楚基礎。但是您應該知道,在將用戶條目(從URL)傳遞到數據庫時,需要考慮很多安全方面的問題。也許從這裏開始閱讀https://en.wikipedia.org/wiki/SQL_injection – pixelistik

回答

2

如果你的意思是如何解析現有的URL爲它的參數:

parse_url()和parse_str()將幫助你帶URL的組成部分。您將主要着眼於以下

$elements = parse_url($url); 
$kvps = $elements->query; 
$db = parse_str($kvps['db']); 
$table = parse_str($kvps['table']); 

但是,如果你的意思是如何從當前頁面的變量呈現前:

<?php 

$dbname = $_GET['db']; 
$tablename = $_GET['table']; 

?> 

而且是啊,有參與開放重大安全隱患'直接'以這種方式訪問​​數據庫。最好在index.php&addUser=tim而不是index.php&insert=tim&db=boofar&table=users&dbuser=root&dbpassword=secure這樣的任務中混淆/封裝/包裝你的函數。

如果你只是在學習,只要你明白爲什麼它是錯誤的,你所做的就是好的。如果您正在編寫生產代碼,那麼您確實需要一個備用解決方案。

+0

類似於..但我必須從URL獲取值。如何做到這一點? – bharath119

+0

使用@Pekka建議的parse_url()。 – 2012-06-17 11:05:44

+0

'$ _GET' *是來自URL查詢字符串的值。 – pixelistik

相關問題