这在代码中做了什么$ id = $ _GET ['id'];?

时间:2015-12-16 19:47:04

标签: php mysql

我正在尝试学习php,我开始使用一个简单的CRUD项目。我基本上已经下载了一些源代码,而我只是想通过它来完成它。当我到达CRUD项目的删除部分时,我遇到了这段代码:

include 'connect.php';
$id = $_GET['id']; // what does this line do?
$table = 'book';
$query = "DELETE FROM $table WHERE id_book=$id";
$result = mysqli_query($connect, $query) or die(mysqli_error($connect));
header('location: index.php');

我真的对这条线感到困惑:

$id = $_GET['id'];

当我在谷歌上进行搜索时,我发现的唯一一件事是来自一些类似代码的简短说明,上面写着“从网址获取ID”。这对我没有意义。有人可以解释一下这行实际上做了什么,以及什么存储在$ id变量中?

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

$_GET['id']指的是URL参数。这是一个例子:

http://www.yourdomain.com?id=1&name=Taylor&city=London

根据上面的网址,您可以使用idname和{{1}获取网址参数city$_GET['id']$_GET['name']的值}}

此外,正如评论中所述,您的行$_GET['city']并不安全。看看准备好的陈述。

答案 1 :(得分:0)

如果您的网址为http://www.yourdomain.com?id=1

$id = $_GET['id'];

我是$ _GET [' id'];

请注意:http://php.net/manual/en/reserved.variables.get.php

但这不是最好的方式......看:http://php.net/manual/en/function.filter-input.php

您的代码需要验证$ id(外观:http://php.net/manual/en/filter.filters.validate.php

对于db,请改用PDO(http://php.net/manual/en/class.pdo.php

答案 2 :(得分:0)

您可以通过浏览器向此php脚本拨打两个基本电话。你要么使用" GET"或" POST"。 $ _GET将变量作为键值对传入您的php脚本。例如,如果您执行了这样的get请求:http://yoururl?usermail=abc@gmail.com&id=1275,那么$ _GET将有两个键:usermail和id。 $ _GET [" id"]的值为1275 - 在您的php脚本中,这将被插入到SQL语句中。