0

我是 PHP 新手。我需要有关从给定 URL 名称中提取数据库名称和表名称的方法的帮助。例如,假设我有一个如下所示的 URL:

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

如何使用 PHP 从此 URL 中提取数据库名称和表名称,并将结果用于其他查询目的。

4

2 回答 2

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.

如果您只是在学习,那么您所做的一切都很好,只要您意识到为什么是错误的。如果您正在为生产编写代码,那么您确实需要一个替代解决方案。

于 2012-06-17T11:03:10.527 回答
1

有两种方法可以将变量或数据传递到另一个页面。

GET(通过 URL)和 POST(通常是表单提交)

你总是可以通过 $_GET http://php.net/manual/en/reserved.variables.get.php

或者

$_POST http://nl.php.net/manual/en/reserved.variables.post.php

于 2012-06-17T11:06:42.797 回答