例如,如果我打开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;
}
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 }
当您的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或方法将变量传递到文件。 如果变量通过URL传递,则可以使用POST
$_GET['variable_name']
或$_REQUEST['variable_name']
来获取它,但是如果发布了变量,则需要$_POST['variable_name']
或$_REQUST['variable_name']
因此,如您所见,$_REQUEST['variable_name']
可以同时使用。
P.S:还请记住-永远不要这样:$results = mysql_query("SELECT * FROM next WHERE id=$id");
它可能会导致MySQL注入,并且您的数据库可能会被黑客入侵。
尝试使用:
$results = mysql_query("SELECT * FROM next WHERE id='".mysql_real_escape_string($id)."'");
$_GET
数组获得该值。因此,id值将存储在$_GET['id']
中。因此,您可以按照以下方式将该值存储在$id
变量中:
$id = $_GET['id'];
//www.example.com/index.php?id=7
print $_GET['id']; // prints "7"
您应检查所有“传入”用户数据-因此,此处的“ id”为INT。不要在您的SQL中直接使用它(容易受到SQL注入的攻击)。
$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