我如何解决此问题,尝试使用$ GET数据调用数据库条目?

时间:2014-05-17 21:12:08

标签: php mysql get

我正在尝试通过链接发送数据,例如在链接中使用...?id = 3。比我在PHP中使用GET来检索它。但是,当我尝试将它放入查询时,它不起作用

$select= mysql_query("SELECT * FROM products WHERE id= $_GET['id'] ");

2 个答案:

答案 0 :(得分:1)

您必须确保该变量是一个整数,否则您很容易受到SQL注入攻击。

$id = (int) $_GET['id'];
$select= mysql_query("SELECT * FROM products WHERE id= $id");

PHP允许在引用字符串中使用简单的变量引用,但不允许像您一样执行数组引用。您可以通过将表达式括在大括号中来完成复杂的变量插值,例如@ user3624411建议......但请不要。这仍然容易受到SQL注入攻击,你不能这样做。如果你是一名电工,你会因安装不安全的电线而引发火灾。

理想情况下,您会切换到PDO并使用查询参数,我鼓励您在第一时间了解这一点。但我理解你在时间限制下,重写所有数据库代码是不切实际的。

答案 1 :(得分:0)

试试这个:

$id = $_GET['id'];
$select= mysql_query("SELECT * FROM products WHERE id= '$id' ");

或者您可以使用$select= mysql_query("SELECT * FROM products WHERE id= " .$_GET['id'] . ")";

但我建议你不要使用GET方法和MYSQL:使用POST和MYSQLI或PDO。