2012-06-17 181 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

相关问题