5

我想从 URL 中获取值以按 ID 从数据库中选择数据。我想要 id 的值。

例如,如果我要打开 `www.example.com/index.php?id=12'。我想在数据库中获取一个 id = 12 的值。

如果我打开“www.example.com/index.php?id=7”。

我想在数据库中获取 id = 7 的值,依此类推。

我有一些代码:

$results = mysql_query("SELECT * FROM next WHERE id=$id");    
while ($row = mysql_fetch_array($results))     
{       
    $url = $row['url'];
    echo $url;    
}
4

5 回答 5

20

网址:

http://www.example.com/?id=2

代码:

$id = intval($_GET['id']);
$results = mysql_query("SELECT * FROM next WHERE id=$id");    
while ($row = mysql_fetch_array($results))     
{       
    $url = $row['url'];
    echo $url; //Outputs: 2
}
于 2013-09-22T13:35:42.297 回答
10

PHP中有两种从URL获取变量的方法:

当您的 URL 是:http://www.example.com/index.php?id=7您可以id通过$_GET['id']$_REQUEST['id']命令获取它并存储在$id变量中。

让我们看一下:

// url is www.example.com?id=7

//get id from url via $_GET['id'] command:
$id = $_GET['id']

同样是:

//get id from url via $_REQUEST['id'] command:
$id = $_REQUEST['id']

不同之处在于变量可以通过 URL 或POST方法传递给文件。

如果变量是通过 url 传递的,那么您可以使用$_GET['variable_name']or获取它,$_REQUEST['variable_name']但是如果变量已发布,那么您需要您$_POST['variable_name']$_REQUEST['variable_name']

如您所见$_REQUEST['variable_name'],可以以两种方式使用。

PS:还请记住- 永远不要这样做:$results = mysql_query("SELECT * FROM next WHERE id=$id");它可能会导致 MySQL 注入,并且您的数据库可能会被黑客入侵。

尝试使用:

$results = mysql_query("SELECT * FROM next WHERE id='".mysql_real_escape_string($id)."'");
于 2013-09-22T13:41:28.823 回答
1

您可以使用$_GET数组来获取该值。因此 id 值将存储在$_GET['id'].

因此,在您的情况下,您可以将该值存储在$id变量中,如下所示:

$id = $_GET['id'];
于 2013-09-22T13:30:31.220 回答
1

您可以使用全局 $_GET 变量访问这些值

//www.example.com/index.php?id=7
print $_GET['id']; // prints "7"

您应该检查所有“传入”用户数据 - 所以在这里,“id”是一个 INT。不要直接在你的 SQL 中使用它(容易受到 SQL 注入的影响)。

于 2013-09-22T13:31:35.263 回答
1

您还可以获得查询字符串值:

$uri =  $_SERVER["REQUEST_URI"]; //it will print full url
$uriArray = explode('/', $uri); //convert string into array with explode
$id = $uriArray[1]; //Print first array value
于 2013-09-22T14:05:59.797 回答